在平时写程序的时,可以需要在界面或者页面上展示保留小数点后两位的数据。为了达到这样的展示效果,本文列举了几个方法:

使用java.math.BigDecimal

使用java.text.DecimalFormat

使用java.text.NumberFormat

使用java.util.Formatter

使用String.format

当然,我们可以借助封装好的类库或者相应的标签来操作,在本篇文章中就不一一列举~

使用java.math.BigDecimal

/**

* 使用BigDecimal,保留小数点后两位

*/

public static String format1(double value) {

BigDecimal bd = new BigDecimal(value);

bd = bd.setScale(2, RoundingMode.HALF_UP);

return bd.toString();

}

使用java.text.DecimalFormat

/**

* 使用DecimalFormat,保留小数点后两位

*/

public static String format2(double value) {

DecimalFormat df = new DecimalFormat("0.00");

df.setRoundingMode(RoundingMode.HALF_UP);

return df.format(value);

}

使用java.text.NumberFormat

/**

* 使用NumberFormat,保留小数点后两位

*/

public static String format3(double value) {

NumberFormat nf = NumberFormat.getNumberInstance();

nf.setMaximumFractionDigits(2);

/*

* setMinimumFractionDigits设置成2

*

* 如果不这么做,那么当value的值是100.00的时候返回100

*

* 而不是100.00

*/

nf.setMinimumFractionDigits(2);

nf.setRoundingMode(RoundingMode.HALF_UP);

/*

* 如果想输出的格式用逗号隔开,可以设置成true

*/

nf.setGroupingUsed(false);

return nf.format(value);

}

使用java.util.Formatter

/**

* 使用java.util.Formatter,保留小数点后两位

*/

public static String format4(double value) {

/*

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

*/

return new Formatter().format("%.2f", value).toString();

}

使用String.format

/**

* 使用String.format来实现。

*

* 这个方法其实和format4是一样的

*/

public static String format5(double value) {

return String.format("%.2f", value).toString();

}

完整代码和测试

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.Formatter;

/**

*

* @author wangmengjun

*

*/

public final class PrecisionTest {

private PrecisionTest() {

}

/**

* 使用BigDecimal,保留小数点后两位

*/

public static String format1(double value) {

BigDecimal bd = new BigDecimal(value);

bd = bd.setScale(2, RoundingMode.HALF_UP);

return bd.toString();

}

/**

* 使用DecimalFormat,保留小数点后两位

*/

public static String format2(double value) {

DecimalFormat df = new DecimalFormat("0.00");

df.setRoundingMode(RoundingMode.HALF_UP);

return df.format(value);

}

/**

* 使用NumberFormat,保留小数点后两位

*/

public static String format3(double value) {

NumberFormat nf = NumberFormat.getNumberInstance();

nf.setMaximumFractionDigits(2);

/*

* setMinimumFractionDigits设置成2

*

* 如果不这么做,那么当value的值是100.00的时候返回100

*

* 而不是100.00

*/

nf.setMinimumFractionDigits(2);

nf.setRoundingMode(RoundingMode.HALF_UP);

/*

* 如果想输出的格式用逗号隔开,可以设置成true

*/

nf.setGroupingUsed(false);

return nf.format(value);

}

/**

* 使用java.util.Formatter,保留小数点后两位

*/

public static String format4(double value) {

/*

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

*/

return new Formatter().format("%.2f", value).toString();

}

/**

* 使用String.format来实现。

*

* 这个方法其实和format4是一样的

*/

public static String format5(double value) {

return String.format("%.2f", value).toString();

}

}

public class Main {

public static void main(String[] args) {

double[] testData = new double[] { 100.123D, 1234567.897D, 100.0052D,

80.00D };

for (double value : testData) {

System.out.println(PrecisionTest.format1(value));

System.out.println(PrecisionTest.format2(value));

System.out.println(PrecisionTest.format3(value));

System.out.println(PrecisionTest.format4(value));

System.out.println(PrecisionTest.format5(value));

}

}

}

运行结果:

100.12

100.12

100.12

100.12

100.12

1234567.90

1234567.90

1234567.90

1234567.90

1234567.90

100.01

100.01

100.01

100.01

100.01

80.00

80.00

80.00

80.00

80.00

java里相乘取两位小数_Java保留两位小数的几种做法相关推荐

  1. 用java编写保留两位小数_Java保留两位小数的几种写法总结

    摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...

  2. java int 保留两位小数_java保留两位小数

    java保留两位小数问题: 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigDecimal(f); doub ...

  3. java int 保留两位小数_java 保留两位小数的几种方法

    1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; pu ...

  4. java保留小数_java保留两位小数4种方法

    java保留两位小数4种方法 方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format(&quo ...

  5. java 两位小数_java保留两位小数及多位小数的方法 | 夕辞

    在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例. [推荐]第一种:S ...

  6. long类型保留两位小数_java保留两位小数问题

    java 保留两位小数问题: 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigDecimal(f); dou ...

  7. java 保存2位小数_java 保留2位小数

    java 保留2位小数 java  保留2位小数  转载 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigD ...

  8. java保留4位有效数字_Java:保留几位有效数字

    来自 例子:保留3位有效数字 1,239,451 ===> 1,240,000 12.1257 ===>12.1 .0681 ===>.0681 5 ===>5 代码实现 pu ...

  9. Java:对double值进行四舍五入,保留两位小数的几种方法

    转载自   Java:对double值进行四舍五入,保留两位小数的几种方法 1. 功能 将程序中的double值精确到小数点后两位.可以四舍五入,也可以直接截断. 比如:输入12345.6789,输出 ...

最新文章

  1. js deep clone 深克隆
  2. 华为交换机netstream配置
  3. A Windows Mobile GPS Application Sample – Using Fake GPS
  4. JAVA常用的数据结构集合框架总结
  5. 使用rem的简单处理
  6. 最简单的爬虫代码 python_python爬虫最简单代码
  7. 深入浅出设计模式---3、代理模式和工厂模式
  8. 计算机应用基础考试质量分析,基于SPSS软件的试卷分析与应用
  9. IMEI修改(IMEI第十五位验证码的计算)
  10. 微信公众号关注自动回复内容php ci,如何实现微信公众号“一键关注”功能?运营神器...
  11. 图片无损放大器有什么软件推荐?这个不要错过
  12. MATLAB自定义拟合函数
  13. 学习B站UP雨落弦鸣的《超简单效果超好的个人网站博客搭建(对小白很友好)》中遇到的问题
  14. Windows截图快捷键及自动保存路径
  15. 【批量去除图片的背景】
  16. 为什么中国软件不咋样
  17. C语言是一种怎样的语言,零基础学习C语言难不难?
  18. win10 企业版的激活命令
  19. 智能小车项目之L9110前后左右控制小车
  20. PX4学习(1)——PX4固件版本开发环境(ROS+mavros版本)

热门文章

  1. 不值得定律 —— 如何在纠结的世界 活出不纠结的人生
  2. 用Vue实现一个街机游戏摇杆
  3. KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware
  4. ios如何解除dns被劫持_iOS监控-DNS劫持
  5. pdf 输出中文的三种字体选择方式
  6. vivo y55s参数配置
  7. Amesim与simulink联合之UDP通讯
  8. 大了一点,小了不少 — 飞行堡垒 6 Plus 长测
  9. Pycharm激活码别再用盗版的啦,2021年有正规的免费申请方法!
  10. 零基础学计算机英语,零基础学英语音标的方法