gpt4 book ai didi

c++ - 将一个非常大的 float 截断为 2 位数 C++

转载 作者:行者123 更新时间:2023-11-28 00:23:18 26 4
gpt4 key购买 nike

需要帮助了解我如何解决这个问题。

我有一个 float (这些是动态数字,不是静态的),例如:

-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

关于c++ - 将一个非常大的 float 截断为 2 位数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com