我正在重写一些别人写的科学代码,在整个代码中,常量始终声明为:
final double value = 2.0000000000D;
并附有一个明显任意长度的所谓有效数字。我有95%的把握确保以这种方式声明变量实际上没有任何作用,并且将值设置为:
double value = 2.0;
会完全一样。但是,可以肯定的是,我要问的是,以这种方式声明一个常数是否有任何(有意义的)区别,还是这可能只是来自另一种语言的遗物而已呢?
编辑:针对以下回答:是的,在问这个问题之前,我已验证在这个特定实例中答案是相同的。也许我应该更具体一些。有没有这样的情况,我们期望添加其他“有效”数字实际上会返回不同的数字?我想,如果浮点数开始出现分辨率问题,我们得到的值可能太大还是太小?
最佳答案
在您的示例中,没有区别。您可以像这样验证
final double value1 = 2.0000000000D;
double value2 = 2.0;
System.out.println(value1 == value2);
哪个输出
true
使用
double value2 = 2.;
也合法