BigDecimal四舍五入使用总结

//BigDecimal四舍五入
double f1 = new BigDecimal(1).setScale(2,RoundingMode.HALF_UP).doubleValue();
//转化成字符串 防止出现0.36 出一堆小数的问题。0.36转BigDecimal时按浮点数,会出现小数
BigDecimal testVal = new BigDecimal(f1+"");

BigDecimal test = new BigDecimal(0.1);//test=0.1000000000000000055511151
test = new BigDecimal(0.1+"");//test=0.1

时间: 2024-10-25 23:09:44

BigDecimal四舍五入使用总结的相关文章

JAVA通过BigDecimal四舍五入解决方案和注意事项

/** * @Description: 四舍五入留2位小数 * @param valueName * @return */ public static Double formateDouble45(Double d){ if(d == null){ return 0d; } BigDecimal b = new BigDecimal(d); double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return f; }

BigDecimal四舍五入保留两位小数

import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class NumberFormatDemo { public static void main(String[] args) { // BigDecimal // 保留两位小数 System.out.println(new BigDecimal(0.2).setScale(2, BigDecimal

BigDecimal四舍五入和转double遇到的问题,结果想不明白,是bug呢,还是另有深意,望高手指点

第一组:结果是0.03   0.02  0.02  0.02 不明白为什么? double amount=0.03;    amount = new BigDecimal(amount).setScale(2 , BigDecimal.ROUND_UP).doubleValue();    System.out.println(amount);    amount = new BigDecimal(amount).setScale(2 , BigDecimal.ROUND_DOWN).doubl

BigDecimal四舍五入

import java.math.BigDecimal; public class BigDecimalTest {    public static void main(String[] args) {        BigDecimal bg1 = new BigDecimal("0.105");        BigDecimal bg2 = new BigDecimal(0.105);        System.out.println(bg1);        System.

Java - BigDecimal四舍五入注意事项

如上图,精度后只有一位时,是五舍六入. 如上图,精度后只有第一位不为0时,也是五舍六入. 如上图,精度后至少有两位不为0时,才是四舍五入.

BIGDECIMAL 四舍五入等取舍问题

我输入的是1.35,但是电脑不可能取到整数,他的值如下:初始化数据:1.350000000000000088817841970012523233890533447265625ROUND_DOWN); 1.35ROUND_UP); 1.36ROUND_CEILING); 1.36ROUND_FLOOR); 1.35ROUND_HALF_DOWN);1.35ROUND_HALF_EVEN);1.35ROUND_HALF_UP); 1.35 负数情况初始化数据:-1.35000000000000008

double,float,BigDecimal类型数值的操作

float四舍五入保留两位小数 /** * float四舍五入保留两位小数 * */ public static float formatDecimal(float n) { return (Math.round(n * 100)) / 100f; } double四舍五入保留两位小数 /** * double四舍五入保留两位小数 * */ public static double formatDecimal(double n) { return (Math.round(n * 100)) /

java BigDecimal的使用和四舍五入及格式规范(精准数据)

• Java中的简单浮点数类型float和double不能够进行运算.不光是Java,在其它很多编程语言中也有这样的问题. 如果我们编译运行下面这个程序会看到什么? public   class  Test  {      public   static   void  main(String args[])  {                 System.out.println(0.05 + 0.01);         System.out.println(1.0 - 0.42);   

关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)

关于四舍五入:ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDecimal a = new BigDecimal(1.5); System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"\tup="+a.setScale (0,BigDecimal.ROU