也有一个很好的解释在维基百科(是的,有时–不经常虽然–维基百科有好的文章):
“组分的二元
组分的二进制只有终止如果分母的2作为唯一的主要因素。作为一个结果,1 / 10不具有一个有限的二进制表示,这导致10×0.1不在浮点运算被精确地等于1。作为一个例子,来解释二进制表达为1 / 3 = 010101。……,这意味着:1 / 3 = 0×2 ^(?1)+1×2 ^(?2)+ 0×2 ^(?3)+ 1×2 ^(?4)+……= 0.3125 +……确切的值不能被发现与一笔数量有限的两个逆功率,和零和的交替永远。”
如下表的转换(分数近似)分数从二进制到十进制。对于那些有兴趣的人:
使用std命名空间;
国际main()
{
国际intvar = 1500000000;
intvar =(intvar×10)/ 10;
cout <<“intvar:”<< intvar << endl;
intvar = 1500000000;
intvar =(static_cast<双>(intvar)×10)/ 10;
cout <<“intvar:”<< intvar << endl;
系统(“暂停”);
返回0;
}
/*devc++ 4.9.9.2编译器代替印刷错误
值指定值直接显示在第一
我要instance.where错误或是新的
DEV C++编译器,这是负责这个…* /