在 C 中如何将浮点值(例如 37.777779)四舍五入到小数点后两位(37.78)?
如果您只想对数字进行四舍五入以用于输出目的,那么"%.2f"
格式字符串确实是正确的答案。但是,如果您实际上想要舍入浮点值以进行进一步计算,则可以使用如下所示的方法:
#include <math.h>
float val = 37.777779;
float rounded_down = floorf(val * 100) / 100; /* Result: 37.77 */
float nearest = roundf(val * 100) / 100; /* Result: 37.78 */
float rounded_up = ceilf(val * 100) / 100; /* Result: 37.78 */
请注意,您可能需要选择三种不同的舍入规则:向下舍入(即在两位小数后截断)、舍入到最接近的值和向上舍入。通常,您希望四舍五入到最接近的值。
正如其他几个人指出的那样,由于浮点表示的怪癖,这些舍入值可能不完全是“明显的”十进制值,但它们将非常非常接近。
有关舍入的更多信息,尤其是舍入到最接近的平局打破规则的信息,请参阅维基百科关于舍入的文章.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)