Swift中数字的小数位数

问题描述 投票:0回答:1

在下面的代码中,我根据一些Toggles是true还是false,通过累加不同的值来声明变量。当我尝试打印此变量时,它返回一个数字和一个十进制的小数,但之后紧跟着很多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)]
    }
swift decimal swift-playground
1个回答
2
投票

首先,如果您想知道0的来源,请阅读is floating point math broken?-数组中的许多值不能精确地表示为Doubles。

要解决显示问题,请使用NumberFormatterminimumFractionDigits设置适当的maximumFractionDigits

或者,使用Decimal代表您的值。

© www.soinside.com 2019 - 2024. All rights reserved.