数据的截尾与舍入

在将float或double转型为整型值时,总是对该数字执行截尾,如下例:

public class CastingNumbers{
public static void main(String[] args){
double above = 0.7,below = 0.4;
float fabove = 0.7f, fbelow = 0.4f;
System.out.println("(int)above: " + (int)above);
System.out.println("(int)below: " + (int)below);
System.out.println("(int)fabove: " + (int)fabove);
System.out.println("(int)fbelow: " + (int)fbelow);
}
}

输出:

(int)above: 0
(int)below: 0
(int)fabove: 0
(int)fbelow: 0

如果想要得到舍入的结果,就需要使用java.lang.Math中的round()方法:

public class RoundingNumbers{
public static void main(String[] args){
double above = 0.7,below = 0.4;
float fabove = 0.7f, fbelow = 0.4f;
System.out.println("Math.round(above): " + Math.round(above));
System.out.println("Math.round(below): " + Math.round(below));
System.out.println("Math.round(fabove): " + Math.round(fabove));
System.out.println("Math.round(fbelow): " + Math.round(fbelow));
}
}

输出:

Math.round(above): 1
Math.round(below): 0
Math.round(fabove): 1
Math.round(fbelow): 0

由于round()是java.lang的一部分,因此在使用它事不需要额外的导入。

推荐一个自己业余时间开发的网盘搜索引擎,360盘搜www.360panso.com

原文地址:https://www.cnblogs.com/eczhou/p/2284407.html