Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
276 views
in Technique[技术] by (71.8m points)

Difference between java and C# doubles

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...