[llvm-dev] [question] с-double: 35.7 * 100 vs 3570.0
Daniil Troshkov via llvm-dev
llvm-dev at lists.llvm.org
Tue Mar 21 10:10:40 PDT 2017
Hi all!
There is a simple c code:
double a = 3570.0;
double b = 35.7 * 100;
int main ()
{
if (b != a) return 1;
return 0;
}
It returns 1 due to:
40abe400 00000000 //a = 3570.0
40abe400 00000001 //b = 35.7 * 100;
gcc do the same thing, so I think it's ok but why?
For floats:
float a = 3570.0;
float b = 35.7 * 100;
int main ()
{
if (b != a) return 1;
return 0;
}
It returns 0...
455f2000 //a = 3570.0
455f2000 //b = 35.7 * 100;
I will be grateful to get any explanations.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170321/60d8fef3/attachment.html>
More information about the llvm-dev
mailing list