栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在NSDecimalNumber中存储1.66

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在NSDecimalNumber中存储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

附录:

Swift论坛中的相关讨论:

  • 通过文字精确的NSDecimalNumber
  • ExpressFlyByFractionLiteral

相关的错误报告:

  • SR-3317用于十进制文字的文字协议应支持精确的十进制精度,以与
  • SR-920为文字可转换类型重新设计了内置的编译器协议。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号