【发布时间】:2014-10-15 00:23:58
【问题描述】:
需要帮助了解我如何解决这个问题。
我有一个浮点数(这些是动态数字,不是静态的),其值例如:
-27.8738e007
我需要截断为 2 位数字 (-27.87),但我没有成功。
我尝试了不同的形式,但对于数字中的“e”没有任何作用......
例如:
float number = -27.8738e007;
int decimals = 2;
number = (roundf (number * pow (10, decimals)) / pow (10, decimals));
这将返回 -2.787383 + 008,我需要得到 -27.87
提前致谢
问候
【问题讨论】:
-
将浮点数四舍五入到指定的小数位数很少有意义。浮点表示(几乎总是)是二进制的;像
1.23这样的数字甚至无法准确表示。对输出进行四舍五入确实有意义,但在内部四舍五入只会丢失信息。