我在将double
与int
分开时遇到问题。代码段是:
double db = 10;
int fac = 100;
double res = db / fac;
res的值为0.10000000000000001
,而不是0.10
。
有谁知道这是什么原因?我正在使用cc来编译代码。
答案 0 :(得分:10)
答案 1 :(得分:3)
CPU使用数字的二进制表示。 您的结果无法用二进制表示。 二进制0.1是0.00011001100110011 ... CPU在某个点截断它并得到一些舍入错误。
答案 2 :(得分:0)
double是浮点运算符,它们不提供精确值。在谷歌上查找精确和浮点运算符。