0

double是一种在 Java 中表示 64 位 IEEE 754 浮点数的类型

double是一种在 C# 中以 IEEE 754 格式表示 64 位双精度数的类型。

两种语言都遵循相同的规范。那么为什么下面的代码有区别呢?我也检查了单声道。

Double.MIN_VALUE == (Double.MIN_VALUE + 1.0); // false 

Java ideone

Console.WriteLine(Double.MinValue == (Double.MinValue + 1.0)); // true

C# ideone

4

2 回答 2

5

JavaDouble.MIN_VALUE2^-1074

尽管

C#Double.MinValue-1.7976931348623157E+308

它们具有不同的值,因为它们遵循不同的语义。

在 Java 中

一个保持双精度类型的最小正非零值的常数

在 C# 中

表示 Double [...] 的最小可能值 此常量的值为负 1.7976931348623157E+308

于 2013-05-13T16:10:35.943 回答
4

C# 的Double.MinValue这个常数的值为负 1.7976931348623157E+308。

Java 的Double.MIN_VALUE一个保持双精度类型的最小正非零值 2-1074 的常量。

于 2013-05-13T16:11:59.980 回答