仅将 float 计算为 2 位数字(不将小数点后 6 位数字格式化/四舍五入为 2)

标签 c decimal rounding ieee-754 decimal-point

我正在嵌入式处理器上运行计算,其中涉及这样的浮点运算:

a = (float)23 / (float)3;  // a = 7.666....7

这是一个很长的计算,我的应用程序没有问题,但有一定的舍入误差;我的意思是 7.67 或 7.66 并不重要。有没有办法减少计算 float 或告诉 math.h 为 2 位数字所花费的计算时间?

知道怎么做吗?

附言: 现在我知道很多人会建议使用固定点,但我有具体要求。

最佳答案

精度由数据类型决定,常见类型如 float 和 double 有固定的精度,不能改变,但有像 libfixmath 这样的库。让您可以快速执行非整数数学运算(在本例中使用 int32_t)

关于仅将 float 计算为 2 位数字(不将小数点后 6 位数字格式化/四舍五入为 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962117/

相关文章:

mysql - 将数字格式设置为小数点后两位

C程序自动四舍五入

c - 函数参数加载到 x64 上的寄存器

c - 如何在一个进程中进行 TLS 握手并在另一个进程中处理其余连接?

c# - c#中字符串转十进制

Java:双舍入算法

c++ - 如何防止 C++ 中的舍入错误?

c - 执行两个或多个相同类型的线程时出现问题 - Pthread C

java - C服务器未接收java/android客户端消息

php - 如何将 18000 变成 18,000.00 作为输出? Mysql 和 PHP