BigDecimal的一个问题,求解疑。

cheniqit1 2012-01-07 07:11:25

求解释 如下代码 为什么方式一 和方式二 为什么会有不同的结果。


public static void main(String[] args) {
//方式1
char c = 4;
System.out.println(new BigDecimal(c).multiply(new BigDecimal(3)) ); //打印结果 12
//方式2
String s = "4";
System.out.println(new BigDecimal(s.charAt(0)).multiply(new BigDecimal(3)) ); //打印结果156

}
...全文
147 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞跃颠峰 2012-01-07
  • 打赏
  • 举报
回复
没有BigDecimal(char)这样一个构造函数,所以调用的时候Jvm自动为参数转型。
BigDecimal(c)实际上调用的是BigDecimal(String),即BigDecimal("4")
BigDecimal(s.charAt(0))实际上调用的是BigDecimal(int),即BigDecimal(0x34),0x34为字符'4'的AscII值

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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