C ++双重数据类型问题

| 让我们考虑以下示例。 双x = 1234597000.0 当我将x的值保存在DB中时,它存储为1234600000。 当我在程序中进行减法运算时,它被视为1234600000。 您能帮我了解那里发生了什么吗? 我的系统是solaris,并使用Sun Studio C ++(CC)编译器编译程序。 提前致谢。
已邀请:
您正在碰到IEEE浮点编码的陷阱。这个问题出现了很多。请参阅每个计算机科学家应了解的有关浮点运算的知识
好像您的双精度数正在沿直线某处转换为浮点数(或从浮点数转换为精度)。浮点数的IIRC只有6-7个有效数字,而双打则超过12个。

要回复问题请先登录注册