我是靠谱客的博主 凶狠路人,最近开发中收集的这篇文章主要介绍截取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);


最后

以上就是凶狠路人为你收集整理的截取double型数据的小数点后两位的几种方法的全部内容,希望文章能够帮你解决截取double型数据的小数点后两位的几种方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部