加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何在NSDecimalNumber中存储1.66

发布时间:2020-12-14 05:38:19 所属栏目:百科 来源:网络整理
导读:我知道浮点数或双倍数不适合存储十进制数字,如金钱和数量.我正在尝试使用NSDecimalNumber.这是我在 Swift游乐场的代码. let number:NSDecimalNumber = 1.66let text:String = String(describing: number)NSLog(text) 控制台输出为1.6599999999999995904 如何
我知道浮点数或双倍数不适合存储十进制数字,如金钱和数量.我正在尝试使用NSDecimalNumber.这是我在 Swift游乐场的代码.
let number:NSDecimalNumber = 1.66
let text:String = String(describing: number)
NSLog(text)

控制台输出为1.6599999999999995904

如何在变量中存储十进制数1.66的确切值?

let number:NSDecimalNumber = 1.66

右侧是浮点数,不能代表
值“1.66”完全正确.一种选择是创建十进制数
从一个字符串:

let number = NSDecimalNumber(string: "1.66")
print(number) // 1.66

另一个选择是使用算术:

let number = NSDecimalNumber(value: 166).dividing(by: 100)
print(number) // 1.66

使用Swift 3,您可以考虑使用“叠加值类型”Decimal,例如

let num = Decimal(166)/Decimal(100)
print(num) // 1.66

还有一个选择:

let num = Decimal(sign: .plus,exponent: -2,significand: 166)
print(num) // 1.66

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读