Rig*_*eda 17 java rounding ceil
是否存在以class这种方式舍入的Java函数或util :func(3/2) = 2
Math.ceil()没有帮助,按名称应该这样做.我知道BigDecimal,但不需要它.
jjn*_*guy 52
Math.ceil()将永远四舍五入,但你正在进行整数除法3/2.因此,因为在整数除3/2 = 1(不1.5)的上限1是1.
你需要做些什么才能达到你想要的效果 Math.ceil(3/2.0);
通过双倍量(2.0)进行除法,最终会进行浮点除法而不是整数除法.因此3/2.0 = 1.5,和ceil()的1.5永远是2.
Tal*_*man 42
有点黑魔法,你可以用整数做到这一切:
// Divide x by n rounding up
int res = (x+n-1)/n
Run Code Online (Sandbox Code Playgroud)
Ran*_*tor 12
将楼层划分转换为上限划分:
(numerator + denominator-1) / denominator
Run Code Online (Sandbox Code Playgroud)
将楼层划分转换为舍入划分:
(numerator + (denominator)/2) / denominator
Run Code Online (Sandbox Code Playgroud)
在Java中,3/2 = 1,因为它使用整数除法.之后没有任何功能可以"修复"此功能.你要做的是强制浮动divison并将结果四舍五入:
int result = (int)Math.ceil( ((float)3) / ((float)2) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28120 次 |
| 最近记录: |