<分区>
我最近遇到了以下一段代码来显示 2 个十进制数字。
val = ((int)(val*100.0))/100.0
结果如前所述,但我不明白其运作背后的逻辑。谁能解释一下。 谢谢。
<分区>
我最近遇到了以下一段代码来显示 2 个十进制数字。
val = ((int)(val*100.0))/100.0
结果如前所述,但我不明白其运作背后的逻辑。谁能解释一下。 谢谢。
最佳答案
如果实际代码看起来像这样:
float val = 3.141592654;
val = ((int)(val * 100.0)) / 100.0; // result would be 3.14
那么其背后的逻辑就是转换为整数会截断小数点。所以乘以 10^n(其中 n 是你想要的小数位数)然后转换它会将小数点向右移动 n 位,然后删除剩余的小数点。然后,将其转换回 float 并除以 10^n 以获得所需的结果。
关于c++ - 将小数舍入为 2 位 C++ 之间的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316160/