0
以下代碼粘貼到一個遊樂場:司返回不同的函數的東西
5.0/100
func test(anything: Float) -> Float {
return anything/100
}
test(5.0)
第一行應返回0.05按預期方式。函數測試返回0.0500000007450581。爲什麼?
以下代碼粘貼到一個遊樂場:司返回不同的函數的東西
5.0/100
func test(anything: Float) -> Float {
return anything/100
}
test(5.0)
第一行應返回0.05按預期方式。函數測試返回0.0500000007450581。爲什麼?
它與功能無關。你的第一個例子是使用類型Double
,它使用64位更精確地表示浮點數。如果您要將第二個示例更改爲:
func test(anything: Double) -> Double {
return anything/100
}
test(5.0)
您會得到您期望的結果。 Float
只使用32位數據,因此它提供了一個不太精確的數字表示。而且,浮點數以二進制值的形式存儲,並且通常只是基數10表示的近似值。這就是爲什麼當存儲爲Float
時0.05
顯示爲0.0500000007450581
。