Java保留两位小数的多种方法

2020-07-3117:41:38 评论 113
摘要

本文介绍了Java格式化double类型数值,使保留两位小数的多种方法。各种方法各有特点,如无特殊需要,建议使用BigDecimal,使用double处理精度的都被开除了!

方法一

此方法返回精度为四舍五入

#.## 格式化后如果小数部分都是0,返回整数

#0.00 格式化后,保留2位小数

DecimalFormat df = new DecimalFormat("#0.00");
double d1 = 3.14159;
double d2 = 1.956;
double d3 = 2.0;
System.out.println(df.format(d1));
System.out.println(df.format(d2));
System.out.println(df.format(d3));
3.14
1.96
2.00

方法二

此方法 >5 时进1

double d = 123.4550;
BigDecimal decimal = new BigDecimal(d);
double value = decimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(value);
123.45

方法三

此方法返回精度为四舍五入

%.2f:%. 表示小数点前任意位数;2 表示两位小数;格式后的结果为f,表示浮点型

double d = 3.14159;
String result = String.format("%.2f", d);
System.out.println(result);
3.14

方法四

此方法返回精度为四舍五入

double d = 3.1445926;
NumberFormat format = NumberFormat.getNumberInstance();
// 参数digits是位数,最后位四舍五入
format.setMaximumFractionDigits(2);
String value = format.format(d);
System.out.print(value);
3.14

 

各种方法各有特点,如无特殊需要,建议使用BigDecimal,使用double处理精度的都被开除了!

 


 

XINAC
  • 本文由 发表于 2020-07-3117:41:38
  • 转载请注明:https://www.xinac.net/8866.html
Java设计模式十三:模板模式 科技资讯

Java设计模式十三:模板模式

模板(Template Method)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: