Swift 4.2舍入功能

时间:2018-09-19 09:32:04

标签: swift

我的应用程序中有func,可以修剪数字,例如e。 9.81-> 9.8。但是更新后,行为迅速改变了。

let myNum = 9.7
print(round(myNum / 0.1) * 0.1)

Swift 4.1.2 output - 9.7 
Swift 4.2 output - 9.700000000000001

请告知如何解决此问题。可能是swift的错误吗?

2 个答案:

答案 0 :(得分:1)

这似乎是您想要的:

let trimmedString = String(format: "%@.1f", round(myNum / 0.1) * 0.1)

答案 1 :(得分:1)

如果您本身需要正确的值,而不仅仅是String表示形式,可以尝试一下。

let value = 9.71
let roundedValue = round(value * 10) / 10
print(roundedValue)

它在9.7上打印Swift 4.2,因此我认为四舍五入的值是正确的,您可以将其用于其他计算。