用BigDecimal将double类型的数保留为4位小数不用舍入
时间: 2024-03-27 13:39:15 浏览: 7
可以使用BigDecimal的setScale方法来设置小数位数,并使用RoundingMode.DOWN模式来实现不舍入。具体代码如下:
```java
double num = 3.1415926;
BigDecimal bd = new BigDecimal(num).setScale(4, RoundingMode.DOWN);
System.out.println(bd.toString());
```
输出结果为:3.1415。其中setScale方法的第一个参数4表示需要保留4位小数,第二个参数RoundingMode.DOWN表示不进行舍入。
相关问题
用BigDecimal将double类型的数保留为4位小数
可以使用BigDecimal的构造方法将double类型的数转换为BigDecimal类型,并且再使用setScale方法将其保留为4位小数。示例代码如下:
```
double num = 123.456789;
BigDecimal result = new BigDecimal(num).setScale(4, RoundingMode.HALF_UP);
System.out.println(result); // 输出 123.4568
```
其中,第一个参数表示保留的小数位数,第二个参数表示采用的舍入模式。在上述代码中,采用的是四舍五入的舍入模式(RoundingMode.HALF_UP)。
java BigDecimal四舍五入保留两位小数
以下是两种Java保留两位小数的方法:
1. 使用Math.round()函数:
```java
double num = Math.round(5.2544555 * 100) * 0.01d;
System.out.println(num); // 输出:5.25
```
2. 使用BigDecimal类:
```java
double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1); // 输出:3.15
```