Java - 2.0 和 2.00000000000D 之间的实际区别

标签 java variables double precision

我正在重写其他人不久前编写的一些科学代码,并且在整个代码中常量始终声明为:

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/

相关文章:

java - Eclipse 无法解析抽象类类型的复合组件属性

java try catch finally - 返回

java - 数组初始化非法? ( java )

java - 不满意的链接错误 : Android JNI

perl - 为什么 Perl 的 $OSNAME 不能在 Solaris 上运行?

c# - 为什么 double.Parse ("0.05") 返回 5.0?

javascript - 检查变量是否未定义的最佳实践

java - 变量不会更新(在 Java 中)

c# - 在没有 OverflowException 的情况下将 "1.79769313486232E+308"转换为 double?

c# - switch 样式 C# 构造双范围案例