其實 在 你的 ((a < 5) ? 9.9 : 9))
因爲你用到了 9.9 雖然你們有重新定義一個 b=((a < 5) ? 9.9 : 9));
但是編譯系統 默認你這個值是返回給一個變量的,那麽編譯期並不知道返回的值
到底是double (9.9)還是 int (9) ,因此就會選擇級別高的double作爲默認的返回值
類型
因此 ((a < 5) ? 9.9 : 9)) 的返回值就是double
你可以做以下的測試:
int b=((a < 5) ? 9.9 : 9));
這時編譯器會報錯,說 Can't convert double to int
因此 如果你需要得到 9 而不是 9.0 那麽你的程序應該寫成
System.out.println("value is - " + (int)((a < 5) ? 9.9 : 9));
因爲你用到了 9.9 雖然你們有重新定義一個 b=((a < 5) ? 9.9 : 9));
但是編譯系統 默認你這個值是返回給一個變量的,那麽編譯期並不知道返回的值
到底是double (9.9)還是 int (9) ,因此就會選擇級別高的double作爲默認的返回值
類型
因此 ((a < 5) ? 9.9 : 9)) 的返回值就是double
你可以做以下的測試:
int b=((a < 5) ? 9.9 : 9));
這時編譯器會報錯,說 Can't convert double to int
因此 如果你需要得到 9 而不是 9.0 那麽你的程序應該寫成
System.out.println("value is - " + (int)((a < 5) ? 9.9 : 9));
解决方案 »
- Java Swing的用户名和密码如何验证?
- 比较a,b大小 不用StringUtils下的方法和lang包下的类
- 关于Java的一个数据类型转换问题
- 难题请教,如何根据标题将文章自动分类。
- 为何无法安装Java 2 SDK SE v1.4.2...难道我机子破!
- 在运行http://localhost:7001/console/的时候,提示我下载java虚拟机,我如何设置而直接利用jbulider9下的jdk?
- 对短消息编程感兴趣吗,请看hnjsbyl.nease.net
- java的函数有没有默认参数值这种用法:void function(int number=5){} ?????????
- 紧急求助!!!
- 请问 学java的数据库编程,有什么书比较好?
- 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- XP下怎么用jdk?
光从上一句来看,这个表达式的值可能为9.9也可能为9
所以java编译器认为为这个表达式是float型,然后将9赋给float型,
打印出来当然会是9.0啊