参见英文答案 >
How to cut decimal off without rounding in C5个
例如,我想在c中打印一个最多2位小数的值,而不是将其四舍五入.
例如,我想在c中打印一个最多2位小数的值,而不是将其四舍五入.
喜欢:
a = 91.827345; printf("%.2f",a);
将打印91.83,但我希望输出仅为91.82.怎么做?
解决方法
我建议更短更快的方法:
printf("%.2f",((signed long)(fVal * 100) * 0.01f));
这样你就不会溢出int,再乘以100不应该影响有效数字/尾数本身,因为唯一真正改变的是指数.