Java 大小数舍入问题
我想将1256.3648转换为126.36(最多两位小数) 为了实现这一点,我使用Java 大小数舍入问题,java,Java,我想将1256.3648转换为126.36(最多两位小数) 为了实现这一点,我使用.setScale(2,BigDecimal.ROUND_HALF_UP)) 但由于某些原因,它不起作用 有什么想法吗?你可以这样做 .setScale(2, RoundingMode.FLOOR); 假设您正在对象上调用它 你会付款吗 1256.36 如果您的输入是1256.3648 记住 java.math.BigDecimal.setScale(int-newScale,RoundingMode round
.setScale(2,BigDecimal.ROUND_HALF_UP))代码>
但由于某些原因,它不起作用
有什么想法吗?你可以这样做
.setScale(2, RoundingMode.FLOOR);
假设您正在对象上调用它
你会付款吗
1256.36
如果您的输入是1256.3648
记住
java.math.BigDecimal.setScale(int-newScale,RoundingMode
roundingMode)
返回一个BigDecimal
值,该值的刻度是指定的
值,其未标度值通过乘以或
将此BigDecimal的未标度值除以
保持其整体价值
你可以这样做
.setScale(2, RoundingMode.FLOOR);
假设您正在对象上调用它
你会付款吗
1256.36
如果您的输入是1256.3648
记住
java.math.BigDecimal.setScale(int-newScale,RoundingMode
roundingMode)
返回一个BigDecimal
值,该值的刻度是指定的
值,其未标度值通过乘以或
将此BigDecimal的未标度值除以
保持其整体价值
下面是一个演示舍入的测试程序:
导入java.math.BigDecimal
public class Test {
public static void main(String[] args) {
BigDecimal x = new BigDecimal("1256.3648");
BigDecimal y = x.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(x);
System.out.println(y);
}
}
它输出:
1256.3648
1256.36
x
保持不变,但是setScale
调用的结果被正确舍入。下面是一个测试程序,演示舍入:
导入java.math.BigDecimal
public class Test {
public static void main(String[] args) {
BigDecimal x = new BigDecimal("1256.3648");
BigDecimal y = x.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(x);
System.out.println(y);
}
}
它输出:
1256.3648
1256.36
x
保持不变,但setScale
调用的结果已正确舍入。您的意思是126.3648
?另外,BigDecimal
是一种不可变的类型……到底什么不起作用?你已经试过什么了?你是说126.3648
?另外,BigDecimal
是一种不可变的类型……到底什么不起作用?你已经试过什么了?