Java中Double保留后小数位的几种方法

摘要:
1倍=1114.145;2BigDecimalb=newBigDecimal;3d=b.setScale.boubleValue();4系统输出打印;返回1.#。00的字符串类型,这意味着最后两位是保留的。它的处理方法是直接截断不需要的尾数,而不是舍入。1倍=1114.145;2DecimalFormatdf=newDecimalFormat;3Stringstr=df.format;4系统输出打印;2.%.2f表示最后两位保留,可以四舍五入。
Java中Double保留后小数位的几种方法

最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese").trim())就可以实现,但因为是统计成绩,所以需要保留小数点后两位,所以各种百度发现了很多解决方法,这里特意总结下,万一以后又用上了呢?

 返回double型的

1.能四舍五入

1 double d = 114.145;
2 d = (double) Math.round(d * 100) / 100;
3 System.out.println(d);

 2. BigDecimal.ROUND_HALF_UP表示四舍五入,BigDecimal.ROUND_HALF_DOWN也是五舍六入,BigDecimal.ROUND_UP表示进位处理(就是直接加1),BigDecimal.ROUND_DOWN表示直接去掉尾数。

1 double d = 114.145;
2 BigDecimal b = new BigDecimal(d);
3 d = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();        
4 System.out.println(d);

 返回String型的

1.#.00表示保留后两位,它的处理方式是直接截掉不要的尾数,不四舍五入。

1 double d = 114.145;
2 DecimalFormat df = new DecimalFormat("#.00");
3 String str = df.format(d);
4 System.out.println(str);

 2.%.2f表示保留后两位,能四舍五入。

1 double d = 114.145;
2 String.format("%.2f", d);

 3.RoundingMode.HALF_DOWN表示 五舍六入,负数先取绝对值再五舍六入再负数,RoundingMode.HALF_UP:表示四舍五入,负数先取绝对值再五舍六入再负数。

复制代码
1 double d = 114.145
2 NumberFormat nf = NumberFormat.getNumberInstance();
3 // 保留两位小数
4 nf.setMaximumFractionDigits(2); 
5 // 如果不需要四舍五入,可以使用RoundingMode.DOWN
6 nf.setRoundingMode(RoundingMode.UP);
7 System.out.println(nf.format(d));
复制代码

 原文:https://www.cnblogs.com/dichuan/p/7769098.html

免责声明:文章转载自《Java中Double保留后小数位的几种方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇易失性存储器SRAM基础知识[zz]程序员最艰巨的十大任务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mssql sqlserver 取消数值四舍五入的方法分享

 摘要: 下文讲述使用round sql函数,对数值型数据进行舍入操作 实验环境:sqlserver 2008 转自: http://www.maomao365.com/?p=6454 最近接到用户需求,需对数值型数据,无论后面数据多少,直接进行舍入操作,左思右想,终于发现了round函数可以满足此操作。 -----------------------...

java BigDecimal实现精确加减乘除运算

加法: b1.add(b2) b2(加数) b1(被加数)减法: b1.subtract(b2) b2(减数) b1(被减数) 乘法: b1.multiply(b2) b2(乘数) b1(被乘数) 除法: b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP) b2(除数) b1(被除数)   import j...

java的四舍五入

  四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例: public static void main(String[] args) {         System.out.println("12.5的四舍五入值:" + Math.round(12.5));       ...

数据库_12_数据类型(列类型)

所谓的数据类型:对数据进行统一的分类,从系统的角度出发为了能够使用统一的方式进行管理,更好的利用有限的空间。 SQL中将数据类型分成了三大类:数值类型,字符串类型和时间日期类型。 1、数值型 数值型数据:都是数值。系统将数值型分为整数型和小数型 1.1整数型 存放整型数据,在SQL中因为更多要考虑如何节省磁盘空间,所以系统将整型又细分成了5类: Tiny...

Round() 四舍五入 js银行家算法

首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下:   var b = 0.825;         alert(Math.round(b * 100) / 100); 其实js中可以 直接用toFixed函数的,   var b = 0.825;...

js实现四舍五入Math.round与toFixed的比较

1 1、toFixed2 var total = 12.345; 3 //四舍五入,保留两位小数 4 var twoPoint = total.toFixed(2); //括号中的num即为保留的位数 5 console.log(twopoint); //12.35 6 7 但是...