我们知道,在java中可以像c语言一样利用printf方法来格式化输出,这样可以使输出结果保留到我们想要的小数位,可如果我们想要把这个保留后的结果赋给新的变量,那应该怎么操作呢?
我们可以借助java中已有的一个类——BigDecimal。
在BigDecimal类中,有一个方法叫setScale,用这个方法可以实现保留小数位的操作。
我们来具体看看这个方法的声明:
setScale(int newScale, RoundingMode roundingMode),从声明中我们可以知道,该方法有两个形参,第一个是int型的参数,第二个是RoundingMode型的参数。第一个好理解,这个参数即代表你要保留的小数位,比如你想保留2位小数,那就传入个2。我们重点来说说第二个RoundingMode型,这其实是java中已有的一个枚举类(可以看看我下一篇关于枚举类的文章),这个类中有8个常量,分别对于8种不同的舍入模式。
这里我们要记住HALF_UP模式,因为这就是我们最常用的“四舍五入”
ok,主要用到的类和方法说完了,接下来举个例子,具体讲讲如何操作:
假设现在有一个double型的变量a,我想把a保留2位小数,并将保留后的结果赋给b,那么我可以写这样的代码:
输出结果如图: