当我们输出一个浮点型变量的时候,会发现输出的小数点会很多,可以通过以下方法保留小数点。
1.System.out.printf("%.nf",num); 其中n保留多少位小数。如n=0就是取整,n=1时就是保留1位小数等。遵循四舍五入
类似与C语言的printf("%.nf",num);来保留小数位。 输出不会自动换行!
代码示例:
public class Test { public static void main(String[] args) { double num = 0.64666666; System.out.printf("%fn",num); //输出0.646667 System.out.printf("%.0fn",num); //输出1 System.out.printf("%.1fn",num); //输出0.6 } }
2.使用Math工具类中的取整方法。可以用于浮点数取整。只看浮点数的小数位的第一位是何值来判断
Math.round(double num); //四舍五入 返回一个long型数,既不保留小数点,如0.5使用该方法变为1。
Math.ceil(double num); //向上取整 返回一个double型数,保留一位小数且该小数为0。 如0.5使用该方法变为1.0。
Math.floor(double num); //向下取整 返回一个double型数,保留一位小数且该小数为0。如0.5使用该方法变为0.0。
代码示例: num1和num2 输出百分比,
public class Test { public static void main(String[] args) { double num1 = 0.51124563; double num2 = 0.47121412; double num3 = 666; System.out.println(Math.round(num1*100)+"%"); //51% System.out.println(Math.round(num2*100)+"%"); //47% System.out.println(Math.round(num3)); //666 System.out.println(Math.ceil(num1*100)+"%"); //52.0% System.out.println(Math.ceil(num2*100)+"%"); //48.0% System.out.println(Math.ceil(num3)); //666.0 System.out.println(Math.floor(num1*100)+"%"); //51.0% System.out.println(Math.floor(num2*100)+"%"); //47.0% System.out.println(Math.floor(num3)); //666.0 } }
3.使用DecimalFormat类。是四舍五入保留小数点
(1)需要导包import java.text.DecimalFormat;
(2)定义对象时指定格式。
DecimalFormat df = new DecimalFormat("0.00%"); // 其中.后面有多少个0就是保留多少位小数,加上%会将浮点数自动转换成百分比(*100)。如果不保留小数点就不要带上.
(3)调用该类方法 df.format(double num);
代码示例:
import java.text.DecimalFormat; public class Test { public static void main(String[] args) { double num1 = 0.51624563; DecimalFormat df = new DecimalFormat("0%"); System.out.println(df.format(num1)); // 输出52% df = new DecimalFormat("0.00"); System.out.println(df.format(num1)); // 输出0.52 } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)