截取double型数据的小数点后两位的几种方法

double d = 674.89887948378493;

1.     此种方法返回的是由原数据四舍五入的数据,但是此种方法不适用于当d为int型值的时候,当d为int型值的时候(如d = 674),则返回的是d本身(如674):

java.text.DecimalFormat dFormat = new DecimalFormat(“#.##”);

String str = dFormat.format(d);

2.     此种方法返回的是由原数据四舍五入的数据,同样适用于当d为int型值的时候,当d为int型值的时候(如d = 674),返回的同样是带有两位小数的值(如674.00):

BigDecimal bDecimal = new BigDecimal(d);

bDecimal = bDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);

3.     此种方法返回的是截取的值(返回值是674.0)

        d = ((int)d * 100) / 100.0;

4.     此种方法返回的是截取的值(返回值是675.0)

Long l = Math.round(d);

d = l * 100 / 100.0;

5.     此种方法返回的是截取的数据,同样本方法不适用于当d为int型值的情况,其当d为int型的时候,返回值为int型值本身(如当d = 674时,返回值是674):

DecimalFormat dFormat = new DecimalFormat();

dFormat.setMaximumFractionDigits(2);

dFormat.setGroupingSize(0);

dFormat.setRoundingMode(RoundingMode.FLOOR);

String str2 = dFormat.format(d);

6.     此种方法返回的是截取的数据,本方法不适用于当d为int型值的情况,若为int型值,会出现StringIndexOutOfBoundsException:

String str3 = String.valueOf(d);

String str4 = str3.substring(0, str3.indexOf(“.”) + 3);

7.     此种方法返回的是四舍五入的数据,本方法不适用于当d为int型值的情况,当d为int型值的时候,返回的是d本身(如当d = 476时,返回值是476):

NumberFormat nFormat = NumberFormat.getNumberInstance();

nFormat.setMaximumFractionDigits(2);

String str5 = nFormat.format(d);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值