michaelhayman / origami-pdf

Automatically exported from code.google.com/p/origami-pdf
GNU Lesser General Public License v3.0
0 stars 0 forks source link

Patch for /lib/origami/numeric.rb #16

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Using %g causes bad formatting - for example 0.000001 is formatted as 1.0e-06

Original issue reported on code.google.com by davejohn...@gmail.com on 24 Oct 2012 at 6:12

GoogleCodeExporter commented 9 years ago
Oops - the regex is incorrect.  brb.

Original comment by davejohn...@gmail.com on 24 Oct 2012 at 6:17

GoogleCodeExporter commented 9 years ago
The regex should be this:

sprintf("%f", self).sub(/(?:\.0*$)|(\.\d*[^0]+)0*$/, '\1')

Seems to work better:
irb(main):014:0> [0, 0.000001, 344, 344.5, 344.55, 344.05, 344.0506].each { |a| 
puts sprintf("%f", a).sub(/(?:\.0*$)|(\.\d*[^0]+)0*$/, '\1') }
0
0.000001
344
344.5
344.55
344.05
344.0506

Original comment by davejohn...@gmail.com on 24 Oct 2012 at 6:29

GoogleCodeExporter commented 9 years ago
OK - home now and off my bike.  I simplified the regex a bit:

sprintf("%f", self).sub(/\.0*$|(\.\d*[^0])0*$/, '\1')

irb(main):004:0> [10110, 1011, 10.11, 1.011, 0.1011, 0.01011, 0.001011].each { 
|a| puts sprintf("%f", a).sub(/\.0*$|(\.\d*[^0])0*$/, '\1') }
10110
1011
10.11
1.011
0.1011
0.01011
0.001011

Original comment by davejohn...@gmail.com on 24 Oct 2012 at 8:12

GoogleCodeExporter commented 9 years ago
Thank you, I committed your last version :)

Original comment by guilla...@security-labs.org on 20 Dec 2012 at 4:18