非原创···
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位小数. 金额从单位分转成单位元
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.实现了指定小数位、指定整数位的数据修约。
js中操作Bigdecimal类,包含所有java中bigdecimal的操作,加减乘除,四舍五入,比较等。
java 随机数Math.random()头、尾数字在四舍五入之后得到的几率其实比中间的数少一半,并不能保证头尾的数字概率与其他数字相同 max.subtract(min).multiply(BigDecimal.valueOf(Math.random())).add(min).setScale(0...
提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四...
* (由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入) * @author chenke * @time 2017/12/5 16:22 * @mail ch_chenke@163.com */ public class Arith...
一些工具类代码块的集合: 提供精确的加法运算 ...当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四舍五入处理 取余数 取余数 BigDecimal 比较大小 获取自己想要的数据格式
java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...
支持+-*/,格式化数字,四舍五入等,BigDecimal精准处理
功能描述: 1.可以保留小数点后几位,如果不足,补0 如果足,就四舍五入 2.整数和小数的逗号分割
大精度的数学运算,通过BigDecimal来实现了加、减、乘、除与四舍五入运算。
扼杀 stround为表示为字符串的数字提供了典型数字格式化库(例如NSNumberFormatter,BigDecimal)支持... 如果未指定精度,则四舍五入为整数: > round ( '5.025' ) ; '5' > round ( '12.8' ) ; '13' 回合指定精度:
Java 计算类,加减乘除、四舍五入、保留两位小数、保留只能位数,将空字符串或null转成0 公共类,可以复用、绝对能用、好用。 计算准确、高效、基于BigDecimal类。
该库类似于 ,但是此处的精度是根据有效数字而不是小数位指定的,并且所有计算均四舍五入为精度(类似于Python的十进制模块),而不仅仅是四舍五入。 该库还添加了三角函数等,并支持非整数幂,这使得它比big...
仅使用 JavaScript 1.5 (ECMAScript 3) 功能全面的文档和测试集包括一个 TypeScript 声明文件:decimal.d.ts 该库类似于 bignumber.js,但这里的精度是根据有效数字而不是小数位指定的,并且所有计算都四舍五入到...
如果不能用BigDecimal精确地表示结果,则将其四舍五入。 运算法则稍有不同,因为它侧重于指定精度(而不是刻度)的用户,因此BigMath可以精确地计算指定数量的,该库旨在提供最小刻度精度的结果(例如到小数点后2位...
2.20.2 四舍五入 46 2.20.3 科学记数法 47 2.20.4 java.math.BigDecimal介绍 48 2.20.4.1 BigDecimal的构造方法 48 2.20.4.2 用BigDecimal进行四则运算 49 2.20.4.3 舍入模式 51 2.20.4.3.1 ROUND_CEILING 51 2.20....
float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位有效数字 注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ...