【问题标题】:Why 100/1000 is not 0.10 in swift palyground? [duplicate]为什么 100/1000 在 swift palyground 中不是 0.10? [复制]
【发布时间】:2020-12-29 23:47:13
【问题描述】:

我遇到的问题是我没有得到小数位的值,这是我过去在 Swift Playground 中运行的代码

print(100/1000)
print(Float(100/1000))

预期输出:

0.10
0.10

实际输出:

0
0.0

【问题讨论】:

  • 你在做整数除法,你得到整数结果
  • 想想:print(100/1000); print(Float(100/1000)); print(Float(100)/1000); print(100/Float(1000)); print(Float(100)/Float(1000))。 5个“可能性”。整数不能有小数,对吧?如果是这样,Float(someInteger),其中someInteger100/1000,而你在 0 之前得到,那是正常的 0.0,因为那是 Float(0),不是吗?

标签: swift floating-point double decimal swift-playground


【解决方案1】:

因为这个:

let variable = 100/1000
print(type(of: variable))
// prints Int

【讨论】:

  • @VarunNaharia 因为100/1000,整数除法等于0。Float(0) 等于0.0
  • 100/1000 = 0,所以 Float(0) = 0.0
【解决方案2】:

只需执行以下操作:

print(100.0 / 1000.0)
print(Float(100) / Float(1000))

所以为了得到浮点结果,你需要将浮点数相除而不是两个整数

【讨论】:

    猜你喜欢
    • 2014-06-10
    • 2016-06-07
    • 2011-06-29
    • 2021-11-13
    • 2023-03-16
    • 1970-01-01
    • 2013-08-12
    • 2021-03-12
    • 2014-11-06
    相关资源
    最近更新 更多