为啥C++里面浮点与整数相乘的结果跟在计算器里的不一样呢?浮点我选的float

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥C++里面浮点与整数相乘的结果跟在计算器里的不一样呢?浮点我选的float相关的知识,希望对你有一定的参考价值。

参考技术A 就是定义问题,int,float都不行,这里使用双精度浮点型double定义试试看。
别忘了还要显示小数点后四位。
参考技术B float的内存是32位2进制,int的内存是16位2进制
int和float两种类型之间运算。计算机会默认把int转换成float类型再进行运算,就是升阶处理,而运算是由CPU直接处理的,因此你可以看到有个0.000002-0.000001的误差数.本回答被提问者采纳
参考技术C 浮点数是没法准确表达实数得,总会有个截断误差.这里不同可能有两个不同:
a)计算时精度不一样,截断误差不同
b)显示时显示精度不一样(你要设置同样得显示位数才有可能一样)
参考技术D 计算精度有区别,也可能是结果显示的时候,做了精度弱化。

以上是关于为啥C++里面浮点与整数相乘的结果跟在计算器里的不一样呢?浮点我选的float的主要内容,如果未能解决你的问题,请参考以下文章

SSE 的整数/浮点值

C++实战之OpenCL矩阵相乘优化

整数与浮点除法 -> 谁负责提供结果?

高精度计算:大整数乘法(采用“万进制”)

使用整数运算的浮点加法

C++ 浮点加法(从头开始):无法计算负结果