我們假設我們有一個StringBuilder和一個double。現在想要追加雙。如果double可以表示爲Integer(例如3.0,5.0等),我想將它添加爲Integer,否則爲double。Java三元運算符不工作?
第一種方法來實現,這是:
StringBuilder sb = new StringBuilder();
double d = 3.5;
if (d % 1 == 0) sb.append((int) d);
else sb.append(d);
System.out.println(sb.toString());
這工作還是不錯的,當d
是3.0
3將被追加,如果d
是3.5
3.5將被追加。
現在我想與三元運營商短期內做到這一點:
StringBuilder sb = new StringBuilder();
double d = 3.5;
sb.append(d % 1 == 0 ? (int) d : d);
System.out.println(sb.toString());
所以現在我有一個問題,每一次,如果雙是3.0
或3.5
它將被添加作爲雙重價值!只有當我理論上投在true
和false
它的作品......但每一次,這不是我想要的。這裏有什麼問題?爲什麼三元操作員不工作?
您應該使用'DecimalFormat(「0。#」)'來擺脫尾部零,而不是轉換爲'int'。 –