需要帮助了解我如何解决这个问题。
我有一个浮点数(这些是动态数字,没有静态数字),其值为,例如:
-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
提前致谢
问候
答案 0 :(得分:3)
看起来你并不熟悉科学记谱法的工作原理。
-27.8738e007是-278738000,或-2.787380e + 08
截断或舍入为“n”数字通常是指将数字四舍五入到小数点后的给定位数。这就是您发布的代码试图完成的内容。
当然,-278738000在小数点后仍然是两位数仍然是相同的数字,这就是你得到的答案。
-27.87380e + 07是2.787380e + 08
这是相同的数字。