如何将8.38精确的表示?
后面的782是什么
如果也表示数
不要后面的,782
我这边要求精度比较高
求解,谢谢
C/C++语言中的浮点数由于字长限制,只能存储有限精度的浮点数,会有截断误差。float
类型能精确到6位有效数字,double
类型能精确到15位有效数字。(有效数字是从第一个非零数字开始计算,不是指小数点后多少位)
如果你需要更高的精度,那么你可以使用高精度浮点运算库,比如GMP, MPFR
https://gmplib.org/
https://www.mpfr.org/
不过从你的代码来看,float
类型的精度已经足够了。
正由于浮点数计算有误差,在判断两个浮点数是否相等时,不能直接用==
来判断,而应该用if(fabs(a-b) <= eps)
的形式来判断,其中eps表示误差