关于 float类型的乘法在复杂小数的情况下出现了一些数值偏差,
========================================= ...
计算例如1.5*2这种是准确的,但是计算例如1.23456*5.67892这种长一些的就有问题了。
使用无mdu库情况下是准确的。
我目前在外面,没法给出有问题的准确数值,稍晚一些我用电脑给出验证截图和实际有问题的数值 LAOXU 发表于 2025-2-7 07:39
关于 float类型的乘法在复杂小数的情况下出现了一些数值偏差,
========================================= ...
经查看源代码,看到问题是两个float类型的数据相乘,具体代码为:
float f1 = 3.141592;
float f2 = 9.330303;
r42 = f1*f2;//正常为29.312006,异常,输出为26.562006
通过对比不添加数学库和添加数学库可以得到两个相差较大的数字,误差已经有点大了
许老师可以尝试复现一下 王昱顺 发表于 2025-2-9 17:20
经查看源代码,看到问题是两个float类型的数据相乘,具体代码为:
float f1 = 3.141592;
float f2 = 9.33 ...
收到 王昱顺 发表于 2025-2-9 17:20
经查看源代码,看到问题是两个float类型的数据相乘,具体代码为:
float f1 = 3.141592;
float f2 = 9.33 ...
好像C51内部实际使用的是双精度运算,然后转换成单精度输出
页:
1
[2]