tab*_*100 36
你可以使用Math.ceil()方法.
请参阅JavaDoc链接:https://docs.oracle.com/javase/10/docs/api/java/lang/Math.html#ceil(double )
来自文档:
小区
public static double ceil(double a)
Run Code Online (Sandbox Code Playgroud)
返回大于或等于参数且等于数学整数的最小(最接近负无穷大)double值.特别案例:
请注意,Math.ceil(x)的值正好是-Math.floor(-x)的值.
参数:
返回:
最小(最接近负无穷大)浮点值,该值大于或等于参数且等于数学整数.
小智 8
简单来说,
Math.ceil将总是向上舍入或如上所述,过量. Math.round 将根据小数向上或向下舍入.
示例Math.ceil和Math.round:
下面的代码将返回:
成本,没有Ceil 2.2和Ceil 3(int),3.0(双).如果我们围绕它:2
int m2 = 2200;
double rate = 1000.0;
int costceil = (int)Math.ceil(m2/rate);
double costdouble = m2/rate;
double costdoubleceil = Math.ceil(m2/rate);
int costrounded = (int)Math.round(m2/rate);
System.out.println("Cost, without Ceil "+costdouble+" and with Ceil "+
costceil+"(int), "+costdoubleceil+"(double). If we round it: "+costrounded);
Run Code Online (Sandbox Code Playgroud)
如果我们将m2的值更改为例如2499,则结果为:Cost,不使用Ceil 2.499,使用Ceil 3(int),3.0(double).如果我们将它舍入:2
如果我们将m2的值更改为例如2550,则结果为:
Cost,不使用Ceil 2.55,使用Ceil 3(int),3.0(double).如果我们围绕它:3
希望能帮助到你.(从以前的答案中提取的信息,我只是想让它更清楚).
BigDecimal( "3.2" ).setScale( 0 , RoundingMode.CEILING )
Run Code Online (Sandbox Code Playgroud)
4
BigDecimal如果您想要精度而不是性能,请避免浮点技术。这意味着要避免float、、、。为了准确性,请使用类。FloatdoubleDoubleBigDecimal
在 上BigDecimal,设置比例,即小数点右侧的位数。如果不需要小数,请将比例设置为零。并指定舍入模式。要始终向上舍入分数,请使用RoundingMode.CEILING,记录为:
舍入模式向正无穷大舍入。如果结果为正,则行为与 RoundingMode.UP 相同;如果为负,则行为与 RoundingMode.DOWN 相同。请注意,此舍入模式永远不会减少计算值。例如,1.1 变成 2,3.2 变成 4。
BigDecimal bd = new BigDecimal( "3.2" ) ;
BigDecimal bdRounded = bd.setScale( 0 , RoundingMode.CEILING ) ;
String output = bdRounded.toString() ;
System.out.println( "bdRounded.toString(): " + bdRounded ) ; // 4
Run Code Online (Sandbox Code Playgroud)
4