你能在 C 中将一个值四舍五入到小数点后两位吗?

标签 c floating-point integer decimal rounding

我正在计算一个房间的体积,我得到了一个小数点后 6 位的数字。我想知道是否可以将值减少到小数点后两位。体积的结果数字来自 5 个不同的变量,我不知道在这种情况下是否重要。

最佳答案

@Rashmi 解决方案提供了一个很好的圆角浮点值显示。
它不会改变原始数字的值。
如果想将浮点值四舍五入到最近的 0.01 使用 round()

#include <math.h>
double d = 1.2345;
d = round(d * 100.0)/100.0;
笔记:
由于 FP 限制,舍入后的值可能不是 0.01 的整数倍,而是给定平台允许的最接近的 FP 数。
d 非常接近 x.xx5 时,(x 是各种数字 0-9) d * 100.0round() 调用之前在乘积中引入了舍入。代码可能会走错路。

关于你能在 C 中将一个值四舍五入到小数点后两位吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443608/

相关文章:

c - 循环中缺少错误(OpenMP with C)

c - 为什么是 1.2 * 30 = 35?

android - 为什么 Android API 中有这么多 float ?

C - 比较 float 和 if 语句

C++ - 如何找到整数的长度

java - 什么是 Java 堆栈与 native 内存的映射。

c - 这两个宏有什么区别吗?

c# - 更改整数位

c - C 中预期的说明符限定符列表

c - 我将如何使用整数变量执行八进制算术?