1. > 智能数码 >

bigdecimal格式化两位小数 bigdecimal格式化金额

Java里面怎么格式化Double变量为保留小数点后二位小数呀

用String类的格式化比较方便点

Double s = 23.43432;

String s1 = String.format("%.2f", s);

最后返回的是一个String的s1,若还是想用double类型,可以用Double.valueOf(s1);再转换一次即可

java使用BigDecimal格式化小数

方法一:

double myNum2 = 111231.5585478;

java.math.BigDecimal b = new java.math.BigDecimal(myNum2);

double myNum3 = b.setScale(5, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(myNum2);

System.out.println(myNum3);

方法二:

double d = 3.1465926;

String result = String.format("%.5f", d);

System.out.println(result);

bigdecimal multiply 怎么保留2位小数

BigDecimal b=new BigDecimal(0);

b.multiply(new BigDecimal(0)).setScale(2,BigDecimal.ROUND_HALF_UP);

一、简介

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。

二、构造器描述

BigDecimal(int) 创建一个具有参数所指定整数值的对象。

BigDecimal(double) 创建一个具有参数所指定双精度值的对象。

BigDecimal(long) 创建一个具有参数所指定长整数值的对象。

BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。

三、方法描述

add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。

subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。

multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。

divide(BigDecimal) BigDecimal对象中的值相除,然后返回这个对象。

toString() 将BigDecimal对象的数值转换成字符串。

doubleValue() 将BigDecimal对象中的值以双精度数返回。

floatValue() 将BigDecimal对象中的值以单精度数返回。

longValue() 将BigDecimal对象中的值以长整数返回。

intValue() 将BigDecimal对象中的值以整数返回。

四、常用方法

保留两位小数

bigDecimal保留后两位小数

bigDecimal保留后两位小数且返回前端不丢失小数点后的0

例后端返回decimal类型 6.00到前端会变成6

通过JSON反序列化注解来使其转成字符串来保证数据不丢失。

1.保留两位小数 修改get方法

return linePrice ==null ?new BigDecimal(0.00) :linePrice.setScale(2, BigDecimal.ROUND_DOWN);

2.加注解

@JsonFormat(shape =JsonFormat.Shape.STRING)在字段上

BigDecimal使用详解

一、构造方法

BigDecimal的构造方法有很多种,大家最常用的如下方式:

BigDecimal bd1=new BigDecimal(10);

BigDecimal bd2=new BigDecimal("10");

二、四则预算

加法:bigDecimal1.add(bigDecimal2);

减法:bigDecimal1.subtract(bigDecimal2);

乘法:bigDecimal1.multiply(bigDecimal2);

除法:bigDecimal1.divide(bigDecimal2);

三、对小数的处理

(1).DecimalFormat类

例:

DecimalFormat df =new DecimalFormat("#.00");

df.format(3.1415926);

结果输出3.14

(2)setScale方法

bigdecimal格式化两位小数 bigdecimal格式化金额bigdecimal格式化两位小数 bigdecimal格式化金额


double f = 111231.5585;

BigDecimal b = new BigDecimal(f);

double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留2位小数

四、比较大小

BigDecimal比较大小不能使用equals因为不仅比较值还比较精度

这里使用BigDecimal自带方法compareTo

例:

bigdecimal格式化两位小数 bigdecimal格式化金额bigdecimal格式化两位小数 bigdecimal格式化金额


BigDecimal a = new BigDecimal("1.00");

BigDecmial b = new BigDecimal(1);

结果是true

这里返回值含义: -1小于 0等于 1大于

java String转bigdecimal 精确两位小数点

String s="125.671";

BigDecimal b = new BigDecimal(s);

b=b.setScale(2, BigDecimal.ROUND_DOWN); //小数位 直接舍去

//b=b.setScale(2, BigDecimal.ROUND_HALF_UP); //四舍五入

//BigDecimal add(BigDecimal augend)

//BigDecimal subtract(BigDecimal subtrahend)

//BigDecimal multiply(BigDecimal multiplicand)

//BigDecimal divide(BigDecimal divisor)

BigDecimal c = b.add(nwe BigDecimat("763.21"));

bigdecimal格式化两位小数 bigdecimal格式化金额bigdecimal格式化两位小数 bigdecimal格式化金额


bigdecimal(18,2)中的2是2位小数吗

decimaldecimal(18,2)18是定点精度,2是小数位数此外还要注意的就是默认值,一定写成0.00,不要用默认的NULL,否则在进行加减排序等操作时,会带来转换的麻烦!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息