Swift中数字中的小数位数
Posted
技术标签:
【中文标题】Swift中数字中的小数位数【英文标题】:Number of decimals in a number in Swift 【发布时间】:2020-05-17 17:59:34 【问题描述】:在下面的代码中,我通过添加不同的值来声明一个变量,具体取决于某些切换是真还是假。当我尝试打印这个变量时,它返回一个数字和一个小数点,但后面跟着很多 0。有没有办法在数字后面不显示零?
免责声明我正在使用 Swift Playground
var rvalues = [6.5, 5.9, 5.3, 4.8, 4.2, 3.5, 3.1, 2.9, 1.75, 1.5, 1.2, 1.05, 0.92, 0.82, 0.75, 0.7]
var r0 : Double
model.rvalues[(model.wearingMaskToggle ? 1:0) + (model.washingHandsToggle ? 2:0) + (model.quarantineToggle ? 8:0) + (model.coverMouthToggle ? 4:0)]
【问题讨论】:
【参考方案1】:首先,如果您对这些 0 的来源感到好奇,请阅读is floating point math broken? - 您的数组中的许多值都不能精确地表示为双精度数。
要解决您的显示问题,请使用NumberFormatter
并适当设置minimumFractionDigits
和maximumFractionDigits
。
或者,使用Decimal
来表示您的价值观。
【讨论】:
使用小数不起作用我收到错误“无法将'Double'类型的返回表达式转换为'Decimal'类型” 当然这适用于 Playgrounds。当您将rvalue
中的表示更改为小数时,您必须更改 r0
并且不会自动转换。
我如何改变表示,它只是右值:十进制
不,[Decimal]
。你还必须确保你没有用精确的值初始化你的数组。以上是关于Swift中数字中的小数位数的主要内容,如果未能解决你的问题,请参考以下文章