Java大浮点数

BigDecimal

文章参考自https://blog.csdn.net/GD_ONE/article/details/103951501和百度百科

精度问题

BigDecimal舍入模式

ROUND_DOWN 向零舍入。 即1.55 变为 1.5 , -1.55 变为-1.5

ROUND_UP 向远离0的方向舍入 即 1.55 变为 1.6 , -1.55 变为-1.6

ROUND_CEILING 向正无穷舍入. 即 1.55 变为 1.6 , -1.55 变为 -1.5

ROUND_FLOOR 向负无穷舍入. 即 1.55 变为 1.5 , -1.55 变为 -1.6

ROUND_HALF_UP 四舍五入 即1.55 变为1.6, -1.55变为-1.6

ROUND_HALF_DOWN 五舍六入 即 1.55 变为 1.5, -1.5变为-1.5

ROUND_HALF_EVEN 如果舍入前一位的数字为偶数,则采用HALF_DOWN奇数则采用HALF_UP 如1.55 采用HALF_UP 1.45采用HALF_DOWN

ROUND_UNNECESSARY 有精确的位数时,不需要舍入

BigDecimal在进行运算时也可以进行舍入

例如除法divide(BigDecimal divisor, int scale, RoundingMode roundingMode)返回一个BigDecimal,其值为 (this / divisor) ,其小数位数为scale。

import java.math.BigDecimal;

public class Main {

	public static void main(String[] args) {
		BigDecimal d1 = new BigDecimal("3.1415926535");
		BigDecimal d2 = new BigDecimal("2.7182818284");
		BigDecimal d3 = d1.divide(d2, 10, BigDecimal.ROUND_UP);
		System.out.println(3.1415926535 / 2.7182818284);
		System.out.println(d3);
	}
}

输出

1.155727349782993
1.1557273498
发布了32 篇原创文章 · 获赞 18 · 访问量 3237

猜你喜欢

转载自blog.csdn.net/u011714517/article/details/104114871
今日推荐