2013-05-13 41 views
0

double是表示在Java中差分加倍

double 64位IEEE 754浮點數是表示在C#在IEEE 754格式的64位雙精度數的類型的類型。

兩種語言都遵循相同的規範。那麼爲什麼在下面的代碼中有區別呢?我也檢查了Mono。

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

Java ideone

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

C# ideone

+1

哦MIN_VALUE是C#的Epsilon? – 2013-05-13 16:07:37

+0

這是正確的。 – 2013-05-13 16:17:21

+0

我建議你閱讀這些常量返回的內容。雖然做了一些研究,但沒有檢查文檔,這是一個好問題的必要步驟。 – 2013-05-13 16:42:36

回答

4

Java的Double.MIN_VALUE2^-1074

C#的Double.MinValue-1.7976931348623157E+308

它們具有不同的值,因爲它們遵循不同的語義。

In Java

的常量保持的最小正非零型雙

In C#的值:

表示雙鍵的最小可能值[...]此常數的值爲負1.7976931348623157E + 308