【问题标题】:Swift: Double/Float is not getting decimal valuesSwift:Double/Float 没有得到十进制值
【发布时间】:2021-04-16 20:46:50
【问题描述】:

我正在尝试简单除法中的小数,但总是返回零:

(lldb) po Double(20 / 100)
0.0

(lldb) po Float(20 / 100)
0.0

你们中的任何人都知道为什么返回零吗?或者有没有办法得到0.20的?

非常感谢您的帮助

【问题讨论】:

    标签: ios iphone swift5 xcode12


    【解决方案1】:

    20 / 100 是整数除法,0 也是如此(因为 100 > 20)。那个 0 被传递给Double.init

    你想要浮点除法:

    20.0/100.0
    

    您也可以使用 20.0/100,因为 Double 除以 Int 是 Double,或 20/100.0 出于同样的原因。

    这些都不会准确返回 0.20,因为 that can't be represented by Double20.0/100 是 0.20000000000000001。但我想这就是你要找的。​​p>

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 2014-11-25
      • 2014-05-31
      • 2018-07-26
      • 1970-01-01
      • 2018-06-21
      • 2013-05-13
      • 2014-11-30
      • 1970-01-01
      相关资源
      最近更新 更多