[英]truncate a very large float to 2 digits c++
需要帮助了解我如何解决此问题。
我有一个浮点数(这些是动态数,没有静态数),其值例如是:
-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
提前致谢
问候
您似乎对科学记数法的工作方式并不熟悉。
-27.8738e007是-278738000,或-2.787380e + 08
截断或四舍五入为“ n”位数通常是指将数字四舍五入为小数点后的给定位数。 这就是您发布的代码想要完成的工作。
当然,-278738000小数点后的四舍五入到两位仍然是相同的数字,这就是您得到的答案。
-27.87380e + 07是2.787380e + 08
是一样的数字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.