java设置有小数点自动进一_Java的四种保留小数点方法

1.前言

在java的学习中,往往算法有一个是属于java的小数点位数保留。

一般有四种方式,如下:

package java_stu;

/**

*@see java保留小数点示例

*

*/

import java.math.BigDecimal;

import java.text.DecimalFormat;

import java.text.NumberFormat;

public class java_01 {

double f = 123456.7890;

/**

* 1.BigDecimal常用于金额的计算,

* 超过16位使用

*/

public void m1() {

BigDecimal bg = new BigDecimal(f);

double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(f1);

}

/**

* 2.DecimalFormat转换最简便

* 用于格式化十进制数字

* 常用

*/

public void m2() {

DecimalFormat df = new DecimalFormat("#.00");

System.out.println(df.format(f));

}

/**

* 3.String.format打印最简便

* 常用

*/

public void m3() {

System.out.println(String.format("%.2f", f));

}

/**

* 4.NumberFormat

* 是所有数值格式的抽象基类。

*/

public void m4() {

NumberFormat nf = NumberFormat.getNumberInstance();

nf.setMaximumFractionDigits(2);

System.out.println(nf.format(f));

}

public static void main(String[] args) {

java_01 f = new java_01();

f.m1();

f.m2();

f.m3();

f.m4();

}

}

输出结果:

自动四舍五入:

123456.79

123456.79

123456.79

123,456.79

Process finished with exit code 0

2.解释

1.BigDecimal

常用于金额的计算,超过16位使用

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。

虽然双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,但是不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。

2.DecimalFormat

它是 NumberFormat 的一个具体子类,用于格式化十进制数字。可以帮你用最快的速度将数字格式化为你需要的样子。

3.String.format

打印最简便。

String.format 作为字符串格式化,简单调用 String.format(“Hello %s”, “John”);

String.format返回的是String类型的字符串。

4.NumberFormat

NumberFormat 是所有数值格式的抽象基类。 该类提供了格式化和分析数值的接口。

以上四种方式,常用的是2,3。

You got a dream, you gotta protect it.

如果你有梦想的话,就要去捍卫它 。 ——《当幸福来敲门》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值