如何在Swift中获得小数位数和加一?
我需要在最后一个小数位上实现加号功能,例如
print(plusOne(0.0001)) -> 0.0002
print(plusOne(0.000001)) -> 0.000002
print(plusOne(22)) -> 23
有没有人做过这件事?
回答
您可以获取 value ulp 属性并添加它:
let decimal1 = Decimal(string: "0.0001")!
let next1 = decimal1 + decimal1.ulp // 0.0002
let decimal2 = Decimal(string: "0.000001")!
let next2 = decimal2 + decimal2.ulp // 0.000002
let decimal3 = Decimal(string: "22")!
let next3 = decimal3 + decimal3.ulp // 23
或者只是简单地获取您的 nextUp 或 nextDown 属性
decimal1.nextUp // 0.0002
decimal2.nextUp // 0.000002
decimal3.nextUp // 23
decimal1.nextDown // 0
decimal2.nextDown // 0
decimal3.nextDown // 21