根据此处的文档,Swift 3/4中的Decimal类型是基于10进制的并且与NSDecimalNumber相互转换。但是我在使用NSDecimalNumber时没有出现精度问题。
let dec24 = Decimal(integerLiteral: 24)
let dec1 = Decimal(integerLiteral: 1)
let decResult = dec1/dec24*dec24
// prints 0.99999999999999999999999999999999999984
let dn24 = NSDecimalNumber(value: 24)
let dn1 = NSDecimalNumber(value: 1)
let dnResult = dn1.dividing(by: dn24).multiplying(by: dn24)
// prints 1
Decimal结构体应该是准确的,或者我有什么误解吗?