Swift 中数字的小数位数
Number of decimals in a number in Swift
在下面的代码中,我通过添加不同的值来声明一个变量,具体取决于某些 Toggles 是真还是假。当我尝试打印这个变量时,它 returns 后面有一个数字和一个小数点,但它后面跟着很多 0 。有没有办法让数字后面不显示零?
免责声明我正在使用 Swift 游乐场
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)]
}
首先,如果您对这些 0 的来源感到好奇,请阅读 is floating point math broken? - 数组中的许多值不能精确表示为双精度。
要解决您的显示问题,请使用 NumberFormatter
并适当设置 minimumFractionDigits
和 maximumFractionDigits
。
或者,使用 Decimal
来表示您的值。
在下面的代码中,我通过添加不同的值来声明一个变量,具体取决于某些 Toggles 是真还是假。当我尝试打印这个变量时,它 returns 后面有一个数字和一个小数点,但它后面跟着很多 0 。有没有办法让数字后面不显示零?
免责声明我正在使用 Swift 游乐场
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)]
}
首先,如果您对这些 0 的来源感到好奇,请阅读 is floating point math broken? - 数组中的许多值不能精确表示为双精度。
要解决您的显示问题,请使用 NumberFormatter
并适当设置 minimumFractionDigits
和 maximumFractionDigits
。
或者,使用 Decimal
来表示您的值。