Java如何保留指定位小数点

Java如何保留指定位小数点,第1张

Java如何保留指定位小数点

        当我们输出一个浮点型变量的时候,会发现输出的小数点会很多,可以通过以下方法保留小数点。

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
	}

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5670212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存