java里相乘取两位小数_Java保留两位小数的几种做法
在平时写程序的时,可以需要在界面或者页面上展示保留小数点后两位的数据。为了达到这样的展示效果,本文列举了几个方法:
使用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保留两位小数的几种做法相关推荐
- 用java编写保留两位小数_Java保留两位小数的几种写法总结
摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...
- java int 保留两位小数_java保留两位小数
java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); doub ...
- java int 保留两位小数_java 保留两位小数的几种方法
1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; pu ...
- java保留小数_java保留两位小数4种方法
java保留两位小数4种方法 方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format(&quo ...
- java 两位小数_java保留两位小数及多位小数的方法 | 夕辞
在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例. [推荐]第一种:S ...
- long类型保留两位小数_java保留两位小数问题
java 保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); dou ...
- java 保存2位小数_java 保留2位小数
java 保留2位小数 java 保留2位小数 转载 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigD ...
- java保留4位有效数字_Java:保留几位有效数字
来自 例子:保留3位有效数字 1,239,451 ===> 1,240,000 12.1257 ===>12.1 .0681 ===>.0681 5 ===>5 代码实现 pu ...
- Java:对double值进行四舍五入,保留两位小数的几种方法
转载自 Java:对double值进行四舍五入,保留两位小数的几种方法 1. 功能 将程序中的double值精确到小数点后两位.可以四舍五入,也可以直接截断. 比如:输入12345.6789,输出 ...
最新文章
- js deep clone 深克隆
- 华为交换机netstream配置
- A Windows Mobile GPS Application Sample – Using Fake GPS
- JAVA常用的数据结构集合框架总结
- 使用rem的简单处理
- 最简单的爬虫代码 python_python爬虫最简单代码
- 深入浅出设计模式---3、代理模式和工厂模式
- 计算机应用基础考试质量分析,基于SPSS软件的试卷分析与应用
- IMEI修改(IMEI第十五位验证码的计算)
- 微信公众号关注自动回复内容php ci,如何实现微信公众号“一键关注”功能?运营神器...
- 图片无损放大器有什么软件推荐?这个不要错过
- MATLAB自定义拟合函数
- 学习B站UP雨落弦鸣的《超简单效果超好的个人网站博客搭建(对小白很友好)》中遇到的问题
- Windows截图快捷键及自动保存路径
- 【批量去除图片的背景】
- 为什么中国软件不咋样
- C语言是一种怎样的语言,零基础学习C语言难不难?
- win10 企业版的激活命令
- 智能小车项目之L9110前后左右控制小车
- PX4学习(1)——PX4固件版本开发环境(ROS+mavros版本)
热门文章
- 不值得定律 —— 如何在纠结的世界 活出不纠结的人生
- 用Vue实现一个街机游戏摇杆
- KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware
- ios如何解除dns被劫持_iOS监控-DNS劫持
- pdf 输出中文的三种字体选择方式
- vivo y55s参数配置
- Amesim与simulink联合之UDP通讯
- 大了一点,小了不少 — 飞行堡垒 6 Plus 长测
- Pycharm激活码别再用盗版的啦,2021年有正规的免费申请方法!
- 零基础学计算机英语,零基础学英语音标的方法