C++ 将非常大的浮点值截断为2位数c++;
需要帮助我理解如何解决这个问题 我有一个浮点数(这些是动态数,不是静态数),其值为,例如:C++ 将非常大的浮点值截断为2位数c++;,c++,truncate,C++,Truncate,需要帮助我理解如何解决这个问题 我有一个浮点数(这些是动态数,不是静态数),其值为,例如: float number = -27.8738e007; int decimals = 2; number = (roundf (number * pow (10, decimals)) / pow (10, decimals)); -27.8738e007 我需要截断到2位数(-27.87),但我没有成功 我尝试过不同的形式,但对数字中的“e”没有任何效果 例如: float number = -2
float number = -27.8738e007;
int decimals = 2;
number = (roundf (number * pow (10, decimals)) / pow (10, decimals));
-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 是同一个号码
看看起来你不熟悉科学记数法的工作原理 -27.8738e007为-278738000或-2.787380e+08 截断或四舍五入到“n”位通常指将数字四舍五入到小数点后的给定位数。这就是您发布的代码试图实现的目标 当然,-278738000四舍五入到小数点后的两位数仍然是相同的数字,这就是您得到的答案 -27.87380e+07等于2.787380e+08 是同一个号码
看看起来你不熟悉科学记数法的工作原理 -27.8738e007为-278738000或-2.787380e+08 截断或四舍五入到“n”位通常指将数字四舍五入到小数点后的给定位数。这就是您发布的代码试图实现的目标 当然,-278738000四舍五入到小数点后的两位数仍然是相同的数字,这就是您得到的答案 -27.87380e+07等于2.787380e+08 是同一个号码
看看起来你不熟悉科学记数法的工作原理 -27.8738e007为-278738000或-2.787380e+08 截断或四舍五入到“n”位通常指将数字四舍五入到小数点后的给定位数。这就是您发布的代码试图实现的目标 当然,-278738000四舍五入到小数点后的两位数仍然是相同的数字,这就是您得到的答案 -27.87380e+07等于2.787380e+08 是同一个号码
看这是真的。我的实验室/工作区/服务器室在我的地下室。这正是我现在的位置谢谢Sam但是。。我怎样才能把科学记数法转换成普通的浮点数?科学记数法不能“转换”成任何东西。科学记数法表示浮点或双精度的值。无论是否以科学或固定精度形式表示,浮点或双精度的值都将完全相同。设置浮点或双精度值的格式时,可以通过设置std::ios_base::fixed和std::ios_base::precision(),或使用std::fixed和std::precision操纵器,将基础浮点或双精度表示转换为固定精度表示。这是真的。我的实验室/工作区/服务器室在我的地下室。这正是我现在的位置谢谢Sam但是。。我怎样才能把科学记数法转换成普通的浮点数?科学记数法不能“转换”成任何东西。科学记数法表示浮点或双精度的值。无论是否以科学或固定精度形式表示,浮点或双精度的值都将完全相同。设置浮点或双精度值的格式时,可以通过设置std::ios_base::fixed和std::ios_base::precision(),或使用std::fixed和std::precision操纵器,将基础浮点或双精度表示转换为固定精度表示。这是真的。我的实验室/工作区/服务器室在我的地下室。这正是我现在的位置谢谢Sam但是。。我怎样才能把科学记数法转换成普通的浮点数?科学记数法不能“转换”成任何东西。科学记数法表示浮点或双精度的值。无论是否以科学或固定精度形式表示,浮点或双精度的值都将完全相同。设置浮点或双精度值的格式时,可以通过设置std::ios_base::fixed和std::ios_base::precision(),或使用std::fixed和std::precision操纵器,将基础浮点或双精度表示转换为固定精度表示。这是真的。我的实验室/工作区/服务器室在我的地下室。这正是我现在的位置谢谢Sam但是。。我怎样才能把科学记数法转换成普通的浮点数?科学记数法不能“转换”成任何东西。科学记数法表示浮点或双精度的值。无论是否以科学或固定精度形式表示,浮点或双精度的值都将完全相同。格式化浮点或双精度值时,可以通过设置std::ios_base::fixed和std::ios_base::precision(),或使用std::fixed和std::precision操纵器,将基础浮点或双精度表示转换为固定精度表示。将浮点数舍入到指定的小数位数几乎没有意义。浮点表示(几乎总是)二进制;像
1.23
这样的数字甚至不能精确表示。在输出时进行四舍五入是有意义的,但在内部进行四舍五入只会丢失信息。将浮点数四舍五入到指定的小数位数很少有意义。浮点表示(几乎总是)二进制;像1.23
这样的数字甚至不能精确表示。对输出进行舍入是有意义的,但内部舍入只会丢失信息