开发者社区 问答 正文

浮点数输出很多位小数出现错误

 #include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char str[1000];
    sprintf(str,"%.100lf",(double)1/250);
    cout<<str;
}

运行这个程序得到的结果是
0.004000000000000000000000000000000中间有一段非零数字
00000000000000000000

展开
收起
a123456678 2016-03-24 11:19:56 2285 分享 版权
1 条回答
写回答
取消 提交回答
  • 浮点数在计算机中其实是一种不精确的表示,它的计算是一种实数的近似值计算,存在舍入(rounding)误差,不够精确,你这个输出结果是很正常的。

    2019-07-17 19:12:24
    赞同 展开评论
问答地址: