其實  在  你的 ((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));