java和C#之间的差异加倍

时间:2013-05-13 16:05:24

标签: c# java mono

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

double是一种表示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

2 个答案:

答案 0 :(得分:4)

Java的Double.MIN_VALUE2^-1074

C#的Double.MinValue-1.7976931348623157E+308

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

In Java

  

保持double类型的最小正非零值的常量

In C#

  

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

答案 1 :(得分:3)

C#的Double.MinValue此常量的值为负1.7976931348623157E + 308。

Java的Double.MIN_VALUE一个常量,保持最小的非零值double类型,2-1074。