java保留小数点后两位_JAVA中小数点后保留两位的方法有哪些
JAVA中小数点后保留两位的方法有哪些
相信大家在平时做项目时,可能会有这样的业务需求:页面或界面上展示的数据保留小数点后两位。 JAVA中小数点后保留两位的方法有哪些?下面百分网小编带大家一起来看看详细内容,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!
1.代码:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class format {
double f = 111231.5585;
public void m1() {
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public void m2() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
/**
* String.format打印最简便
*/
public void m3() {
System.out.println(String.format("%.2f", f));
}
public void m4() {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
}
public static void main(String[] args) {
format f = new format();
f.m1();
f.m2();
f.m3();
f.m4();
}
}
2.输出结果:
111231.56
111231.56
111231.56
111,231.56
这里我们提供了一个工具类,定义浮点数的加、减、乘、除和四舍五入等运算方法。以供参考。
源文件MathExtend.java:
import java.math.BigDecimal;
public class MathExtend
{
//默认除法运算精度
private static final int DEFAULT_p_SCALE = 10;
/**
* 提供精确的加法运算。
* @param v1
* @param v2
* @return 两个参数的和
*/
public static double add(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的加法运算
* @param v1
* @param v2
* @return 两个参数数学加和,以字符串格式返回
*/
public static String add(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.add(b2).toString();
}
/**
* 提供精确的减法运算。
* @param v1
* @param v2
* @return 两个参数的差
*/
public static double subtract(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的减法运算
* @param v1
* @param v2
* @return 两个参数数学差,以字符串格式返回
*/
public static String subtract(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.subtract(b2).toString();
}
/**
* 提供精确的乘法运算。
* @param v1
* @param v2
* @return 两个参数的积
*/
public static double multiply(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供精确的乘法运算
* @param v1
* @param v2
* @return 两个参数的数学积,以字符串格式返回
*/
public static String multiply(String v1, String v2)
{
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.multiply(b2).toString();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @return 两个参数的商
*/
public static double pide(double v1, double v2)
{
return pide(v1, v2, DEFAULT_p_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @param scale 表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double pide(double v1,double v2, int scale)
{
return pide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式
* @param v1
* @param v2
* @param scale 表示需要精确到小数点以后几位
* @param round_mode 表示用户指定的舍入模式
* @return 两个参数的商
*/
public static double pide(double v1,double v2,int scale, int round_mode){
if(scale < 0)
{
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.pide(b2, scale, round_mode).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @return 两个参数的商,以字符串格式返回
*/
public static String pide(String v1, String v2)
{
return pide(v1, v2, DEFAULT_p_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN
* @param v1
* @param v2
* @param scale 表示需要精确到小数点以后几位
* @return 两个参数的商,以字符串格式返回
*/
public static String pide(String v1, String v2, int scale)
{
return pide(v1, v2, DEFAULT_p_SCALE, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式
* @param v1
* @param v2
* @param scale 表示需要精确到小数点以后几位
* @param round_mode 表示用户指定的舍入模式
* @return 两个参数的商,以字符串格式返回
*/
public static String pide(String v1, String v2, int scale, int round_mode)
{
if(scale < 0)
{
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return b1.pide(b2, scale, round_mode).toString();
}
/**
* 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN
* @param v 需要四舍五入的'数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v,int scale)
{
return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供精确的小数位四舍五入处理
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @param round_mode 指定的舍入模式
* @return 四舍五入后的结果
*/
public static double round(double v, int scale, int round_mode)
{
if(scale<0)
{
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
return b.setScale(scale, round_mode).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果,以字符串格式返回
*/
public static String round(String v, int scale)
{
return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
}
/**
* 提供精确的小数位四舍五入处理
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @param round_mode 指定的舍入模式
* @return 四舍五入后的结果,以字符串格式返回
*/
public static String round(String v, int scale, int round_mode)
{
if(scale<0)
{
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(v);
return b.setScale(scale, round_mode).toString();
}
}
【JAVA中小数点后保留两位的方法有哪些】相关文章:
java保留小数点后两位_JAVA中小数点后保留两位的方法有哪些相关推荐
- java小数点后两位 四舍五入_Java中double函数,四舍五入并保留小数点后两位的4种方法,BMI案例...
今天写了一个小程序,Java 语言的测试BMI[谁不知道"BMI"的自行百度不解释],涉及到了四舍五入并保留小数点后两位,就总结了一下.先给大家看看程序 就是说给大家提供4种方法来 ...
- java除法保留两位小数_JAVA除法保留小数点后两位的两种方法
1.利用Math.round()的方法: 两个int型的数相除,结果保留小数点后两位: int a=1188; int b=93; double c; c=(double)(Math.round(a* ...
- java double 小数点后两位小数_Java中double类型的数据精确到小数点后两位
Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585; BigDecimal b = newBigDecimal(f);do ...
- java 常用四舍五入保留小数点后两位方法
java 常用四舍五入保留小数点后两位方法 1 . Math.round double num = Math.round(5.2544555 * 100) * 0.01; System.out.pri ...
- java保留小数点后两位(小数点保留两位方法)
java.怎样简便的保留小数点后两位. 有两种情况: 1.只要输出结果的时候可以用以下方法: double x1 = 0.026; System.out.println(String.format(& ...
- Java - 保留小数点后两位
(1)使用BigDecimal ,保留小数点后两位 public static String format1(double value) {BigDecimal bd = new BigDecimal ...
- Java保留小数点后两位方法(推荐使用NumberFormat)
就是 DecimalFormat返回的是String类型,考虑到使用场景一般使用NumberFormat 废话不多说,直接上代码. /*** 两数相除保留小数点后两位*/public static S ...
- Java中如何保留小数点后几位数字
保留小数点后几位数字 对于一些Java的初学者(博主也只算平民级别,以下是我的见解,可能有小错误,有错莫怪),如何保留一个double型小数点后固定的位数很是让人苦恼,因为我刚学的时候不知道如何保留小 ...
- 在oracle里面保留小数点后两位,Oracle保留小数点后两位的几种方法
有时候在做数据处理的时候,在前台页面上显示的数字需要保留小数点的后两位,不足两位的用0代替,这个时候就需要对数据做一些处理了.如果只用round(value,2)(四舍五入)和trunc(value, ...
- 两个小技巧: 如何取到倒数第二个.的位置, 如何 保留小数点后2位
如何取到倒数第二个.的位置 //通过两个lastIndexOf取到倒数第二个.的位置,然后获取包名,因为".bean.Class"是固定的 String clas = " ...
最新文章
- 【Qt】Qt再学习(十六):QObject::connect: Cannot queue arguments of type ‘QString‘
- Netty 使用总结
- 【Linux 内核 内存管理】RCU 机制 ① ( RCU 机制简介 | RCU 机制的优势与弊端 | RCU 机制的链表应用场景 )
- 解决后退,清空验证码(其它文本框保留)
- Cache替换算法:LRU与LFU的区别
- 1.移动端测试知识笔记(面试必备,测试点,adb命令)
- Activity的四种加载模式(转载)
- python print 输出到txt_(Python基础教程之七)Python字符串操作
- 初窥Linux 之 我最常用的20条命令
- NMS(非极大值抑制)算法 -- 理论、代码
- 制作一个企业网站——html华为官网购物商城项目的设计与实现
- python实例(二):判断输入的车牌归属地
- 【蓝桥杯单片机组模块】13、NEC 红外通信 - vs1838B
- Web前端零基础入门HTML5+CSS3基础教程——了解前端
- 网页中HTML代码如何实现字体删除线效果
- latex审阅版添加行号,遇见公式就缺失行号
- HbuildX H5+App监听手机返回键以及webview关闭
- MIPS系统网络的配置
- WQ7033开发指南(基础篇)之1.3 如何进行单线烧录
- 小程序textarea完美填坑