繁体   English   中英

将非常大的浮点数截断为2位C ++

[英]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

是一样的数字

参见http://en.wikipedia.org/wiki/Scientific_notation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM