Class Ariths
java.lang.Object
tech.riemann.nif.utils.Ariths
算术工具类,提供精确的数学运算方法,解决浮点数精度问题
- Author:
- Kerbores(kerbores@riemann.tech)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleadd(double v1, double v2) 计算两个double类型数值的相加结果 由于double类型在进行加法运算时,可能会出现精度问题, 因此使用BigDecimal来进行高精度的加法运算static doublediv(double v1, double v2) 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入static doublediv(double v1, double v2, int scale) 提供(相对)精确的除法运算。static doublemul(double v1, double v2) 提供精确的乘法运算,解决浮点数乘法的精度问题static intmulToInt(double v1, double v2) 提供精确的乘法运算。static doubleround(double v, int scale) 四舍五入一个双精度浮点数。static doubleround(double v, int scale, RoundingMode mode) 提供精确的小数位四舍五入处理。static doublesub(double v1, double v2) 提供精确的减法运算,解决浮点数减法的精度问题
-
Constructor Details
-
Ariths
public Ariths()
-
-
Method Details
-
add
public static double add(double v1, double v2) 计算两个double类型数值的相加结果 由于double类型在进行加法运算时,可能会出现精度问题, 因此使用BigDecimal来进行高精度的加法运算- Parameters:
v1- 第一个加数,为double类型v2- 第二个加数,为double类型- Returns:
- 返回两个加数相加的结果,为double类型
-
div
public static double div(double v1, double v2) 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入- Parameters:
v1- 被除数v2- 除数- Returns:
- 两个参数的商
-
div
public static double div(double v1, double v2, int scale) 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。- Parameters:
v1- 被除数v2- 除数scale- 表示表示需要精确到小数点以后几位。- Returns:
- 两个参数的商
-
mul
public static double mul(double v1, double v2) 提供精确的乘法运算,解决浮点数乘法的精度问题- Parameters:
v1- 被乘数v2- 乘数- Returns:
- 两个参数的积
-
mulToInt
public static int mulToInt(double v1, double v2) 提供精确的乘法运算。- Parameters:
v1- 被乘数v2- 乘数- Returns:
- 两个参数的积的int表示
-
round
public static double round(double v, int scale) 四舍五入一个双精度浮点数。- Parameters:
v- 要四舍五入的双精度浮点数。scale- 小数点后的位数。- Returns:
- 四舍五入后的双精度浮点数。
- Throws:
IllegalArgumentException- 如果scale小于0。
-
round
提供精确的小数位四舍五入处理。- Parameters:
v- 需要四舍五入的数字scale- 小数点后保留几位mode- 进位模式- Returns:
- 结果
-
sub
public static double sub(double v1, double v2) 提供精确的减法运算,解决浮点数减法的精度问题- Parameters:
v1- 被减数v2- 减数- Returns:
- 两个参数的差
-