【发布时间】:2012-03-10 20:13:27
【问题描述】:
我用 MSVC2008 编译并运行这段代码
long double x = 111111111;
long double y = 222222222;
long double Z = x * y;
cout << z << endl;
当我调试时,z 等于
24691357975308640
数学上z应该是
24691357975308642
发生了什么事?
【问题讨论】:
-
我用 gcc 得到 24691357975308642。怪你的编译器。
-
@a-z 什么是 long long MAX 值以及 1 long long 需要多少字节?
-
64位长,
signed long long可以存储[-9223372036854775808, 9223372036854775807]
标签: c++ visual-c++ math numbers date-arithmetic