我正在重写其他人不久前编写的一些科学代码,并且在整个代码中常量始终声明为:
final double value = 2.0000000000D;
附加了明显任意长度的所谓有效数字。我 95% 确信以这种方式声明变量实际上不会执行任何操作,并且将值设置为:
double value = 2.0;
会完全相同。但为了确定,我要问的是,以这种方式声明一个常量是否会产生任何(有意义的)差异,或者这可能只是另一种语言的遗物,它可能会产生影响?
编辑:回应下面的答案:是的,在提出这个问题之前,我验证了这个特定情况下的答案是相同的。也许我应该更具体一些。是否存在这样的情况:我们期望添加额外的“有效”数字实际上会返回不同的数字?我想如果我们得到非常大或非常小的值, float 开始出现分辨率问题,有可能吗?
最佳答案
在你的例子中,这没有什么区别。您可以像这样验证这一点,
final double value1 = 2.0000000000D;
double value2 = 2.0;
System.out.println(value1 == value2);
哪个输出
true
使用double value2 = 2.;
也是合法的
关于Java - 2.0 和 2.00000000000D 之间的实际区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963968/