我的应用程序中有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的错误吗?
答案 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
,因此我认为四舍五入的值是正确的,您可以将其用于其他计算。