用整数除以double

时间:2010-06-16 06:33:02

标签: c floating-point precision floating-accuracy

我在将doubleint分开时遇到问题。代码段是:

  double db = 10;
  int fac = 100;
  double res = db / fac;

res的值为0.10000000000000001,而不是0.10

有谁知道这是什么原因?我正在使用cc来编译代码。

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:3)

CPU使用数字的二进制表示。 您的结果无法用二进制表示。 二进制0.1是0.00011001100110011 ... CPU在某个点截断它并得到一些舍入错误。

答案 2 :(得分:0)

double是浮点运算符,它们不提供精确值。在谷歌上查找精确和浮点运算符。