Re:Be careful with JS numbers
by ricardobeat on Sunday January 13, 2013 @04:03PM
(#5051852)
[ Parent
| on HN ]
# Ruby 1.8.7
1.8.7 :022 > 1000000 * 8.2
=> 8200000.0
# Ruby 1.9.2
1.9.2p320 :001 > 1000000 * 8.2
=> 8199999.999999999I can't reproduce the PHP example:
$ uname -p
x86_64
$ php -v
PHP 5.4.6-1ubuntu1 (cli) (built: Aug 22 2012 21:13:52)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
$ php -r 'var_dump(1000000 * 8.2);'
float(8200000)
$
Re:Be careful with JS numbers
by ricardobeat on Sunday January 13, 2013 @09:41PM
(#5053028)
My fault, I think I copied from the wrong REPL.
Re:Be careful with JS numbers
by CamperBob2 on Sunday January 13, 2013 @04:34PM
(#5051941)
C/C++:
printf("%lf\n", 1000000 * 8.2);
8200000.000000
Here, printf() is doing the necessary rounding to hide the fact that 8.2 isn't exactly representable. It's interesting that other languages don't do something similar when outputting a float to text.