看板 C_and_CPP 關於我們 聯絡資訊
當用16進位運算時 如果結果小於1 就直接顯示0 例如: float a = 0x1/2; printf("%f",a); 結果出來會是0 不是0.5 如要正確顯示 似乎要加個float在前面才可以: float a = float(0x1)/2; 不知道為什麼只有在結果小於1才需要加 可以說明一下嗎@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.18.113
purpose:整數除整數 11/07 09:51
KaryuuIssen:可是我不是定義成float了嗎? 11/07 10:04
linotwo:等號右邊的 0x1 和 2 分別都是整數型態, 11/07 10:08
linotwo:0x1 和 2 用 / 運算完後才會轉型成 float。 11/07 10:08
linotwo:你如果改成 0x1 / 2.f 也可以 11/07 10:11
KaryuuIssen:了解 感謝 11/07 10:30