- or download this
$val=$val+0; # Sum
$val=eval "$val"; # Eval
$val=sprintf("%f", $val); # Sprintf
# Call your original technique "Regex"
- or download this
Sum("1.25e-5") gives '1.25e-05'
Regex("1.25e-5") '1.25e-05'
...
Sum("1.25e-3") 0.00125
Regex("1.25e-3") 0.00125
Eval("1.25e-3") 0.00125
- or download this
Sprintf("1.25e-5") 0.000013
Sprintf("1.25e-3") 0.001250
Sprintf("1.25e-7") 0.000000
- or download this
sprintf("%.10f", $val) 0.0012500000
- or download this
Benchmark: timing 100000 iterations of Eval, Regex, Sprintf, SprintfSu
+bst, Sum...
Eval: 20 wallclock secs (19.58 usr + 0.00 sys = 19.58 CPU)
...
Sprintf: 7 wallclock secs ( 6.22 usr + 0.00 sys = 6.22 CPU)
SprintfSubst: 8 wallclock secs ( 8.74 usr + 0.00 sys = 8.74 CPU)
Sum: 4 wallclock secs ( 3.52 usr + 0.00 sys = 3.52 CPU)
- or download this
#!/usr/bin/perl
...
Sprintf => sub { Sprintf("1.25e-3") },
SprintfSubst => sub { SprintfSubst("1.25e-3") },
});