• bigdecimal 保留小数位 public class test1_format { public static void main(String[] args) { BigDecimal decimal = new BigDecimal("1.12345"); System.out.println(decimal); BigD...
bigdecimal 保留小数位
public class test1_format {

public static void main(String[] args) {
BigDecimal decimal = new BigDecimal("1.12345");
System.out.println(decimal);
BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN);
System.out.println(setScale);

BigDecimal setScale1 = decimal.setScale(4,BigDecimal.ROUND_HALF_UP);
System.out.println(setScale1);
}
}

参数定义
ROUND_CEILING  Rounding mode to round towards positive infinity.  向正无穷方向舍入 ROUND_DOWN  Rounding mode to round towards zero.  向零方向舍入 ROUND_FLOOR  Rounding mode to round towards negative infinity.  向负无穷方向舍入 ROUND_HALF_DOWN  Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.  向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向下舍入, 例如1.55 保留一位小数结果为1.5 ROUND_HALF_EVEN  Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.  向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，如果保留位数是奇数，使用ROUND_HALF_UP ，如果是偶数，使用ROUND_HALF_DOWN ROUND_HALF_UP  Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.  向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向上舍入, 1.55保留一位小数结果为1.6 ROUND_UNNECESSARY  Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.  计算结果是精确的，不需要舍入模式 ROUND_UP  Rounding mode to round away from zero.  向远离0的方向舍入

展开全文 • ## Bigdecimal保留小数位

千次阅读 2018-07-20 17:01:14
Bigdecimal 保留小数位       参数定义 ROUND_CEILING Rounding mode to round towards positive infinity. 向正无穷方向舍入 ROUND_DOWN Rounding mode to round towards zero. 向零方向舍入...

Bigdecimal 保留小数位 参数定义

ROUND_CEILING
Rounding mode to round towards positive infinity.
向正无穷方向舍入

ROUND_DOWN
Rounding mode to round towards zero.
向零方向舍入

ROUND_FLOOR
Rounding mode to round towards negative infinity.
向负无穷方向舍入

ROUND_HALF_DOWN
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向下舍入, 例如1.55 保留一位小数结果为1.5

ROUND_HALF_EVEN
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，如果保留位数是奇数，使用ROUND_HALF_UP ，如果是偶数，使用ROUND_HALF_DOWN

ROUND_HALF_UP
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向上舍入, 1.55保留一位小数结果为1.6

ROUND_UNNECESSARY
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
计算结果是精确的，不需要舍入模式

ROUND_UP
Rounding mode to round away from zero.
向远离0的方向舍入


展开全文 • ## bigdecimal保留小数位

千次阅读 2018-08-24 16:14:54
bigdecimal保留小数位 ROUND_DOWN：直接去掉多余的位数 ROUND_UP：进位处理，与四舍五入相比，指定位数的后一位数无论是多少，都会进位 ROUND_CEILING：天花板（向上），正数进位向上，负数舍位向上 ROUND_FLOOR：...
bigdecimal保留小数位
ROUND_DOWN：直接去掉多余的位数ROUND_UP：进位处理，与四舍五入相比，指定位数的后一位数无论是多少，都会进位ROUND_CEILING：天花板（向上），正数进位向上，负数舍位向上ROUND_FLOOR：地板（向下），正数舍位向下，负数进位向下ROUND_HALF_UP：四舍五入（舍弃部分需要>.4,才会进位）ROUND_HALF_DOWN：四舍五入（舍弃部分需要>.5,才会进位）
        BigDecimal bigDecimal1 = new BigDecimal(1.2345);
System.out.println(bigDecimal1.setScale(3, BigDecimal.ROUND_HALF_UP));//1.234
BigDecimal bigDecimal2 = new BigDecimal(1.2346);
System.out.println(bigDecimal2.setScale(3, BigDecimal.ROUND_HALF_UP));//1.235
BigDecimal bigDecimal3 = new BigDecimal("1.2345");
System.out.println(bigDecimal3.setScale(3, BigDecimal.ROUND_HALF_UP));//1.235
BigDecimal bigDecimal4 = new BigDecimal("1.2345");
System.out.println(bigDecimal4.setScale(3, BigDecimal.ROUND_HALF_DOWN));//1.234
原因：  使用参数为float或double的BigDecimal创建对象会丢失精度。建议不要使用参数为float或double的BigDecimal创建对象。而是采用string字符串来创建对象
展开全文  java
• Bigdecimal记录 BigDecimal decimal = new BigDecimal("1.55"); BigDecimal round_ceiling = decimal.setScale(1,BigDecimal.ROUND_CEILING); System.out.println("round_ceiling = " + round_ceiling + "\n"); ...
Bigdecimal记录
    BigDecimal decimal = new BigDecimal("1.55");

BigDecimal round_ceiling = decimal.setScale(1,BigDecimal.ROUND_CEILING);
System.out.println("round_ceiling = " +  round_ceiling + "\n");

BigDecimal round_down = decimal.setScale(1,BigDecimal.ROUND_DOWN);
System.out.println("round_down = " + round_down + "\n");

BigDecimal round_floor = decimal.setScale(1,BigDecimal.ROUND_FLOOR);
System.out.println("round_floor = " + round_floor + "\n");

BigDecimal round_half_down = decimal.setScale(1,BigDecimal.ROUND_HALF_DOWN);
System.out.println("round_half_down = " + round_half_down + "\n" );

BigDecimal round_half_up = decimal.setScale(1,BigDecimal.ROUND_HALF_UP);
System.out.println("round_half_up = " + round_half_up + "\n");

BigDecimal round_half_even = decimal.setScale(1,BigDecimal.ROUND_HALF_EVEN);
System.out.println("round_half_even = " + round_half_even + "\n" );

BigDecimal round_unnecessary = decimal.setScale(2,BigDecimal.ROUND_UNNECESSARY);
System.out.println("round_unnecessary = " + round_unnecessary + "\n" );

BigDecimal round_up = decimal.setScale(1,BigDecimal.ROUND_UP);
System.out.println("round_up = " + round_up + "\n" );

打印结果：
round_ceiling = 1.6

round_down = 1.5

round_floor = 1.5

round_half_down = 1.5

round_half_up = 1.6

round_half_even = 1.6

round_unnecessary = 1.55

round_up = 1.6

参数定义
ROUND_CEILING Rounding mode to round towards positive infinity. 向正无穷方向舍入
ROUND_DOWN Rounding mode to round towards zero. 向零方向舍入
ROUND_FLOOR Rounding mode to round towards negative infinity. 向负无穷方向舍入
ROUND_HALF_DOWN Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round down. 向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向下舍入, 例如1.55 保留一位小数结果为1.5
ROUND_HALF_EVEN Rounding mode to round towards the “nearest neighbor” unless both neighbors are equidistant, in which case, round towards the even neighbor. 向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，如果保留位数是奇数，使用ROUND_HALF_UP ，如果是偶数，使用ROUND_HALF_DOWN
ROUND_HALF_UP Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round up. 向（距离）最近的一边舍入，除非两边（的距离）是相等,如果是这样，向上舍入, 1.55保留一位小数结果为1.6
ROUND_UNNECESSARY Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. 计算结果是精确的，不需要舍入模式
ROUND_UP Rounding mode to round away from zero. 向远离0的方向舍入
展开全文  java
• ## BigDecimal保留小数位

千次阅读 2017-10-25 20:45:56
package com.algorithms;import java.math.BigDecimal; import java.util.Scanner;/** * 调和级数求和 * @author LYY * */ public class TiaoHeJiShuTest { public static void main(String[] args) { System java
• ## Bigdecimal保留小数位

千次阅读 2016-11-10 15:21:35
这里Bigdecimal保留小数主要用到的方法是： BigDecimal a = a=new BigDecimal("180.055555456456465"); BigDecimal setScale = a.setScale(int newScale, int roundingMode)其中setScale()方法中，关于小数点，JDK给... jdk
• BigDecimal decimal = new BigDecimal("1.98764432"); System.out.println(decimal); BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN); System.out.println(setScale); BigDecimal ...
• 方法一： BigDecimal b1 = new BigDecimal...说明：scale=3,也就是说保留位小数。如果b=156，156.5或156.55，其结果分别是 156.0，156.5和156.55。也就是说，保留的位数不能统一，看要求使用。   方法二： Do JAVA divide
• public class test1_format {  public static void main(String[] args) {  BigDecimal decimal = new BigDecimal("1.12345");  System.out.println(decimal);  BigDecimal setScale
• 原文地址:https://www.cnblogs.com/liqforstudy/p/5652517.html public class test1_format { public static void main(String[] args) { ... BigDecimal decimal = new BigDecimal("1.12345"); ...  ...