为什么在 swift 中 x != 0 时 x / 100 == 0?
Why is x / 100 == 0 when x != 0 in swift?
我创建了一个 for 循环,我在其中计算了一些值。
for i in 1...100{
let xValue = i/100
print(xValue) // returns 0 every time except when i == 100
}
这是对 for 循环的一部分的重新创建。为什么我没有得到 'xValue' 的正确值?
有关信息,我还尝试了以下方法:
let xValue: Float = Float(i/100)
这也不管用,尽管我非常具体。我一定是忘记了这些算术的一些基本知识
swift.
中的运算符
当您将 Int
除以 Int
时,结果将 向下舍入 。使用浮点类型,如 Double
或 Float
以获得更高的精度。
for i in 1...100 {
let xValue = Float(i)/100
print(xValue)
}
解决您尝试的解决方案 - 当您这样做时:
let xValue: Float = Float(i/100)
Int
结果首先在 i/100
中计算(并向下舍入为 0),然后您将转换为 Float
。
因此,我们在除法之前将 i
转换为 Float
,因此结果计算为 Float
.
由于i
和100
都是整数值,/
将进行整数除法,结果将被截断为0。
即使你let xValue: Float = Float(i/100)
,括号内的除法结果在值可以转换为Float之前已经被截断为0。
在除法之前将i
转换为浮点值以防止结果被截断。
for i in 1...100{
let xValue = Float(i)/100
print(xValue)
}
我创建了一个 for 循环,我在其中计算了一些值。
for i in 1...100{
let xValue = i/100
print(xValue) // returns 0 every time except when i == 100
}
这是对 for 循环的一部分的重新创建。为什么我没有得到 'xValue' 的正确值?
有关信息,我还尝试了以下方法:
let xValue: Float = Float(i/100)
这也不管用,尽管我非常具体。我一定是忘记了这些算术的一些基本知识 swift.
中的运算符当您将 Int
除以 Int
时,结果将 向下舍入 。使用浮点类型,如 Double
或 Float
以获得更高的精度。
for i in 1...100 {
let xValue = Float(i)/100
print(xValue)
}
解决您尝试的解决方案 - 当您这样做时:
let xValue: Float = Float(i/100)
Int
结果首先在 i/100
中计算(并向下舍入为 0),然后您将转换为 Float
。
因此,我们在除法之前将 i
转换为 Float
,因此结果计算为 Float
.
由于i
和100
都是整数值,/
将进行整数除法,结果将被截断为0。
即使你let xValue: Float = Float(i/100)
,括号内的除法结果在值可以转换为Float之前已经被截断为0。
在除法之前将i
转换为浮点值以防止结果被截断。
for i in 1...100{
let xValue = Float(i)/100
print(xValue)
}