CoCo 发表于 2023-11-24 20:12:45

lua放大倍数错误问题

由于开发需要将一个小数的数据存入Flash中,因此将小数进行放大10倍,并使用math.floor函数,防止放大的数字后面跟着0。但放大10倍变成整数后发现会无缘无故自动减1,这种情况并不是每个数字都会出现。请问,发生这种情况的原因是什么,是lua这门语言在进行乘法运算时有什么规则吗?

If后要接end 发表于 2023-11-27 10:13:07

不建议这样存放小数,可以改成json字符串的形式直接将小数赋值到json里面,然后存到flash里面。
应该是小数的存放问题,例如13.2有可能表示成13.1999999998这样。

CoCo 发表于 2023-11-27 10:47:38

If后要接end 发表于 2023-11-27 10:13
不建议这样存放小数,可以改成json字符串的形式直接将小数赋值到json里面,然后存到flash里面。
应该是小数 ...

请问有没有例程可以参考(没有理解json字符串形式)?如果改用json字符串的形式会不会导致存储的字节数变大呢?感谢!

If后要接end 发表于 2023-11-27 10:51:15

CoCo 发表于 2023-11-27 10:47
请问有没有例程可以参考(没有理解json字符串形式)?如果改用json字符串的形式会不会导致存储的字节数变 ...
http://doc.gz-dc.com/LUA/08_flash_api.html

可以参考里面的例程,字符串存储需要的存储空间会多一点,但是数据量不是特别多的话,影响不大

liaozhai2020 发表于 2024-1-31 11:27:54

可能是math.floor函数影响的,换成强制转换试试,乘以10倍后舍去小数点后的小数,强制取整。如果精度不够可以乘100,然后舍去小数
页: [1]
查看完整版本: lua放大倍数错误问题