9999999999999999.0 – 9999999999999998.0

Hacker News 上的昨日热帖,求 9999999999999999.0 – 9999999999999998.0,哪种编程语言的浮点计算能给出正确答案?

Ruby: irb(main):001:0> 9999999999999999.0 – 9999999999999998.0
2.0
Java: public class Foo{public static void main(String args[]){System.out.println(9999999999999999.0-9999999999999998.0);}}
2.0
Python: >>> 9999999999999999.0 – 9999999999999998.0
2.0
Rebol: >> 9999999999999999.0 – 9999999999999998.0
== 2.0
Haskell: Prelude> 9999999999999999.0 – 9999999999999998.0
2.0
TCL: % expr “9999999999999999.0-9999999999999998.0”
0.0
Emacs Lisp: ELISP> (- 9999999999999999.0 9999999999999998.0)
2.0
Common–Lisp: [1]> (- 9999999999999999.0 9999999999999998.0)
0.0
Maxima: (%i1) 9999999999999999.0-9999999999999998.0;
(%o1)                                2.0
Google: 0
K/Q: q)9999999999999999.0-9999999999999998.0
2f
R: > 9999999999999999.0-9999999999999998.0
[1] 2
Erlang: 1> 9999999999999999.0-9999999999999998.0 .
2.0
C: main(){printf(“%lf\n”,(double)9999999999999999.0-9999999999999998.0);}
2.000000
AWK: $ awk ‘END{print 9999999999999999.0-9999999999999998.0}'</dev/null
2
GoLang: var a = 9999999999999999.0; var b = 9999999999999998.0; fmt.Printf(“%f\n”, a-b)
2.000000
Perl: $ perl -e ‘print 9999999999999999.0-9999999999999998.0;print “\n”;’
2.0
Perl6: $ perl6 -e ‘print 9999999999999999.0-9999999999999998.0;print “\n”;’
1
Wolfram: 1
soup:    9999999999999999.0-9999999999999998.0
1

最后看看 ChatGPT 的回答:

来源:https://geocar.sdf1.org/numbers.html

本文文字及图片出自 OSC开源社区

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注