关于BigDecimal除法结果保留小数位数的问题

x7cxymengyu 2013-12-23 11:17:18
我今天刚刚学习了新的类BigDecimal,在做除法测试的时候,刚开始是这么做的
public class Test
{
private static RoundingMode ROUND_HALF_UP;
public static void main(String[] args)
{
BigDecimal a = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(3),3,ROUND_HALF_UP);
System.out.println(a);

}
}
jvm执行报出NullPointerException异常,为什么呢?这么写有何不妥之处?
如果是代码改成这样,反而运行正确
public class Test
{
public static void main(String[] args)
{
BigDecimal a = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(3),3,BigDecimal.ROUND_HALF_UP);
System.out.println(a);

}
}
...全文
4934 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostkngiht 2013-12-25
  • 打赏
  • 举报
回复
private static RoundingMode ROUND_HALF_UP;没初始化。 改为private static RoundingMode ROUND_HALF_UP = RoundingMode.HALF_UP;
知风23_ 2013-12-24
  • 打赏
  • 举报
回复
在JDK里RoundingMode.java中的枚举类型, HALF_UP(BigDecimal.ROUND_HALF_UP),你可以用这个试一下
tony4geek 2013-12-24
  • 打赏
  • 举报
回复
private static RoundingMode ROUND_HALF_UP;------>private static int ROUND_HALF_UP = 4;
x7cxymengyu 2013-12-23
  • 打赏
  • 举报
回复
引用 1 楼 alooka 的回复:
变量没初始化。
舍入模式如何初始化?
alooka 2013-12-23
  • 打赏
  • 举报
回复
变量没初始化。

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧