0

double is a type that represents 64-bit IEEE 754 floating-point number in Java

double is a type that represents 64-bit double-precision number in IEEE 754 format in C#.

Both languages follow the same specification. So why there is difference in following code? I checked Mono as well.

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

Java ideone

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

C# ideone

PermGenError
  • 45,977
  • 8
  • 87
  • 106
Lukasz Madon
  • 14,664
  • 14
  • 64
  • 108

2 Answers2

5

Java's Double.MIN_VALUE is 2^-1074

while

C#'s Double.MinValue is -1.7976931348623157E+308

They have different values because they follow a different semantic.

In Java :

A constant holding the smallest positive nonzero value of type double

In C# :

Represents the smallest possible value of a Double [...] The value of this constant is negative 1.7976931348623157E+308

Denys Séguret
  • 372,613
  • 87
  • 782
  • 758
4

C#'s Double.MinValue : The value of this constant is negative 1.7976931348623157E+308.

Java's Double.MIN_VALUE: A constant holding the smallest positive nonzero value of type double, 2-1074.

AllTooSir
  • 48,828
  • 16
  • 130
  • 164