繁体   English   中英

如何限制计算的浮点值的小数位数?

[英]How can I limit the amount of decimal places for a calculated float value?

当我计算 5/2 时,结果是 2.500000,所以我想知道如何将浮点值的结果限制为 2.50。 我没有使用 cout setprecision() 或 fixed 语句,因为我需要算术值的实际结果只有 2 位小数。

如果您不想使用某些小数位,那么使用ceil()floor()round()怎么样?

首先,2/5 给出 2,因为这样写会进行整数除法。 只有2.0f/5.0f会给你一个浮动。

其次, std::setprecision做的唯一一件事就是在执行std::cout时修改控制台上显示的位数,它不会更改变量或表达式的值。

如果你想将你的结果舍入到小数点后一位而不使用标准函数,你可以做类似的事情

float a = 3.1415;
float b = ((int)(a*10+0.5))/10.0       // b is a rounded to one decimal place

但是如果您将std::setprecision设置为小数点后 5 位,它仍会向您显示最后一位小数点后的所有零。

暂无
暂无

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

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