`

Bigdecimal四舍五入

    博客分类:
  • sss
 
阅读更多
非原创···
public BigDecimal divide(BigDecimal divisor,
                         int scale,
                         RoundingMode roundingMode)返回一个 BigDecimal,其值为 (this / divisor),其标度为指定标度。如果必须执行舍入,以生成具有指定标度的结果,则应用指定的舍入模式。 

参数:
divisor - 此 BigDecimal 要除以的值。
scale - 要返回的 BigDecimal 商的标度。
roundingMode - 要应用的舍入模式。 
返回:
this / divisor 
抛出: 
ArithmeticException - 如果 divisor 为零,则 roundingMode==RoundingMode.UNNECESSARY 和指定的标度不足以准确地表示相除的结果。
从以下版本开始: 
1.5 

 

两种方法;

1
double num = 5.75557;  
System.out.println("floor-->"+Math.floor(num));//取整  
BigDecimal b=new BigDecimal(num);     
num=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); //保留2位小数

 

2
这个实现方法被证明是最完美的实现。
  public static String round(double v, int scale) {
  
         if (scale < 0) {
 
             throw new IllegalArgumentException("The scale must be a positive integer or zero");
 
             }
 
         BigDecimal b = new BigDecimal(Double.toString(v));
 
         BigDecimal one = new BigDecimal("1");
 
         return String.valueOf(b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue());
 
     }

public class Test123 {
	public String round(double v, int scale) {
		if (scale < 0) {
			throw new IllegalArgumentException(
					"The scale must be a positive integer or zero");
		}

		BigDecimal b = new BigDecimal(Double.toString(v));
		BigDecimal one = new BigDecimal("1");

		return String.valueOf(b.divide(one, scale, BigDecimal.ROUND_HALF_UP)
				.doubleValue());

	}
	
	public static void main(String[] args){
		double num = 5.75557;   
		System.out.println("floor-->"+Math.floor(num));//取整   
		BigDecimal b=new BigDecimal(num);      
		num=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();      
		     
		System.out.println("Sample1-->"+num); 
		
		double num2 = 3.1415926;
		Test123 test = new Test123();
		String str = test.round(num2, 3);
		System.out.println("Sample2-->"+str);
	}
	
}

 

分享到:
评论

相关推荐

    java代码-BigDecimal 四舍五入保留2位小数. 金额从单位分转成单位元

    本示例代码主要关注如何使用BigDecimal进行四舍五入操作,以保留两位小数,并将金额从单位分转换为单位元。下面将详细解释相关知识点。 1. BigDecimal类: BigDecimal是Java提供的一个大数类,它提供了对任意精度...

    java四舍五入

    在 Java 语言中,四舍五入方法可以通过多种方式实现,包括使用 Math 类的方法、DecimalFormat 类的方法和 BigDecimal 类的方法。 1. 使用 Math 类的方法 Java 的 Math 类提供了多种数学函数,包括 floor、ceil 和 ...

    四舍五入_四舍五入问题_源码

    在这个场景中,标题"四舍五入_四舍五入问题_源码"暗示我们将讨论如何在编程中实现四舍五入操作,特别是与计算苹果单价和数量相关的总价问题。描述提到“输入苹果的单价及购买的数量,计算总价,分别显示总价的总价...

    java 四舍五入 需要的朋友看看

    System.out.println("四舍五入(3.856)=" + new BigDecimal(i).setScale(0, BigDecimal.ROUND_HALF_UP)); System.out.println("保留两位小数(3.856)=" + new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP))...

    js四舍五入-保留两位小数

    在上面的例子中,我们使用`BigDecimal`类创建了一个表示123.4567的`BigDecimal`对象,然后调用`setScale()`方法设置保留两位小数,并使用`RoundingMode.HALF_EVEN`指定四舍五入的规则。 ##### 2. 使用 `...

    金额的大小转换及小数的四舍五入处理

    在Java中,`BigDecimal`类是用来处理大数值和高精度计算的,同样适用于四舍五入: ```java BigDecimal bd = new BigDecimal("12345.6789"); BigDecimal rounded = bd.setScale(2, RoundingMode.HALF_UP); System....

    sishewuru.rar_四舍五入

    标题 "sishewuru.rar_四舍五入" 暗示了我们关注的主题是关于数值计算中的四舍五入操作。在这个主题下,我们将深入探讨四舍五入的定义、用途、方法以及在编程中实现四舍五入的常见算法。 四舍五入是一种在数学和...

    关于java的四舍五入问题

    2. **`BigDecimal`类**: `BigDecimal`是Java中用于处理精确浮点数的类,它提供了丰富的四舍五入方法,如`round(RoundingMode mode)`。`RoundingMode`枚举定义了多种舍入策略,如`UP`(向远离零的方向取整)、`DOWN`...

    详解java的四舍五入与保留位示例

    Java中的四舍五入与保留位示例 Java中的四舍五入是指对数字进行舍入操作,以达到指定的...四舍五入规则可以是银行家舍入法或普通四舍五入规则,保留位可以使用多种方式来实现,包括使用BigDecimal类和setScale()方法。

    java 四舍五入保留小数的实现方法

    以下是使用`BigDecimal`进行四舍五入的例子: ```java double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); ``` 在这个例子中,`setScale`...

    BigDecimal加减乘除计算

    这里 `20` 表示保留20位小数,`ROUND_HALF_UP` 是舍入模式,表示四舍五入。 6. 舍入模式(RoundingMode): BigDecimal 支持八种舍入模式,如: - ROUND_UP:向上舍入,远离零,始终增加数字。 - ROUND_DOWN:...

    JS的高精度计算(BigDecimal)

    alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...

    数据修约(四舍五入\整数位修约)

    1.采用两种方式实现数据修约【①IEEE754的银行家算法、②传统的四舍五入】。 2.实现Decimal、double、string三种数据类型的数据修约。 3.实现了指定小数位、指定整数位的数据修约。

    BigDecimal的计算

    否则采用四舍五入的方式。这里使用了 `setScale` 方法来控制结果的精度和舍入方式。 接下来是几个具体的计算例子: - **预算资本支付成本** (`budgetCapitalPayCost`):首先获取所有预算资本支付成本 (`...

    BigDecimal使用

    7. 四舍五入:在进行除法运算时,可以使用 ROUND_HALF_UP 参数指定四舍五入的方式,以避免精度损失。 在使用 BigDecimal 时需要注意以下几点: * BigDecimal 对象是不可变的,因此在进行运算时需要创建新的对象。 ...

    bigdecimal

    2. **舍入模式**: `BigDecimal.ROUND_HALF_UP` 表示四舍五入模式,这是最常见的舍入方式。`BigDecimal` 还提供了其他多种舍入模式,如 `ROUND_DOWN`、`ROUND_UP` 等,可以根据具体需求选择。 3. **异常处理**: 当 `...

    JSTL标签的formatNumber 格式化数字,四舍六入问题。

    2. 使用`&lt;c:set&gt;`标签结合Java代码:在JSP页面上,可以先将数字转换为`BigDecimal`对象,然后使用`setScale()`方法指定舍入模式,如`RoundingMode.HALF_UP`,这会执行标准的四舍五入操作。 ```jsp ${inputValue}...

    Java四舍五入时保留指定小数位数的五种方式

    可以编写自定义方法来实现四舍五入,这可能涉及到`BigDecimal`或`NumberFormat`类的使用,例如: ```java public static double formatDouble1(double d) { return (double)Math.round(d*100)/100; } public ...

    java BigDecimal操作

    分割除法时需注意,由于可能会出现无限循环小数,`divide()`方法需要指定舍入模式,例如`RoundingMode.HALF_UP`表示四舍五入。 BigDecimal还提供了比较操作,如`compareTo()`方法,用于比较两个BigDecimal值的大小...

Global site tag (gtag.js) - Google Analytics