将double转换成int输出,为什么输出的数尾部还有小数点?

test_lockxxx 2012-06-09 06:10:26
double k = 12345;
System.out.println(k); //输出: 12345.0

我为了不让输出的数最后加.0,下面我先将它转换成整型,然后输出,可是结果:



double m = 12345;
int n = (int)m;
System.out.println(m==n ? n : m); //为什么输出的还是12345.0
求解。
...全文
286 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
test_lockxxx 2012-06-10
  • 打赏
  • 举报
回复
不同类型比较时,自动转换,这我知道。

只是这个代码有点特殊,在三元运算中,输出的时候,我捌不过来弯。
weitao1234 2012-06-09
  • 打赏
  • 举报
回复
不同类型比较时,自动转换。
kevin_lifes 2012-06-09
  • 打赏
  • 举报
回复
不同基本类型比较时,JVM会进行向上自动转型,如2楼所说~
未来纪元 2012-06-09
  • 打赏
  • 举报
回复
m==n ? n : m

先判断m==n,需要将m和n的类型变成一样,所以n的类型转化为double,因为m==n为true,所以结果为n,因为是double型,所以输出12345.0
test_lockxxx 2012-06-09
  • 打赏
  • 举报
回复
double m = 12345;
int n = (int)m;
System.out.println(m==n ? n : m);

if(m==n)
{
System.out.println(n);
}
else
{
System.out.println(m);
}

62,614

社区成员

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

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