以下程序的輸出是什么?5.3f 和 5.3 有什么區(qū)別?public class DemoOnFloat { public static void main(String[] args) { float fl = 5.3f; if (fl == 5.3) System.out.println("Both are equal"); else System.out.println("Both are not equal"); } }
1 回答

慕雪6442864
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)您在源代碼中只寫(xiě) 5.3 時(shí),Java 將其假定為 64 位 Double。這意味著 Java 的默認(rèn)浮點(diǎn)數(shù)數(shù)據(jù)類(lèi)型是 Double。如果你想告訴 JVM 這應(yīng)該是一個(gè) 32 位浮點(diǎn)值,你必須明確地在值后面加上 'f'。
因此,在您提出問(wèn)題時(shí),在 if() 條件內(nèi),您正在比較浮點(diǎn)值和雙精度值。您將得到“兩者不相等”作為輸出。
附加說(shuō)明:同樣,Java 默認(rèn)將非十進(jìn)制數(shù)識(shí)別為 32 位整數(shù)。如果你想告訴 JVM 這應(yīng)該是一個(gè) 64 位 Long 值,你必須明確地在值后面加上 'L'。
希望這可以幫助。
添加回答
舉報(bào)
0/150
提交
取消