簡體   English   中英

Swift:雙精度/浮點數未獲取十進制值

[英]Swift: Double/Float is not getting decimal values

我試圖用簡單的除法得到小數,但總是返回零:

(lldb) po Double(20 / 100)
0.0

(lldb) po Float(20 / 100)
0.0

你們中的任何人都知道為什么返回零? 還是有辦法獲得0.20的?

我會非常感謝你的幫助

20 / 100是 integer 的除法,0 也是如此(因為 100 > 20)。 該 0 被傳遞給Double.init

你想要浮點除法:

20.0/100.0

您也可以使用20.0/100 ,因為 Double 除以 Int 是 Double,或者20/100.0出於同樣的原因。

這些都不會准確返回 0.20 ,因為這不能用 Double 表示 20.0/100是 0.20000000000000001。 但我認為這就是你要找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM