感觉你最后的打印有点画蛇添足额- -
double m = 12345;
int n = (int)m;
你本意是转过类型然后打印,那直接这样就可以啦:
System.out.println(n);
结果:
12345
用三元运算符的话:
m==n?n:m
这里需要n和m是同类型的。
但是你的n是int而m是double不同,且double级别高于int
因而java会将低级的int自动向高级的double转换,
之后再对比进行三元运算,因而结果还是double型的
12345.0
如果你非要用三元运算符的话,建议这么改:
System.out.println((int)m == n ? n : (int)m);
我在机子上测试过啦~结果就是你想要的:
12345 |