"%.2f"将我的数字四舍五入而不是切割

bru*_*uno -2 string floating-point xcode ios swift

我有以下号码

7.9775609756097534

我正在使用下面的代码只显示两位小数

let formatted = String(format: "Angle: %.2f", angle)
Run Code Online (Sandbox Code Playgroud)

问题是结果是:

7.98

代替

7.97

Mat*_*lak 6

对于像你这样的情况我们使用NumberFormatter.它是专为满足您的需求而设计的课程.对于您的情况,它应该足以使用以下内容:

let numberFormatter = NumberFormatter()
numberFormatter.roundingMode = .down
numberFormatter.minimumFractionDigits = 2
numberFormatter.maximumFractionDigits = 2
numberFormatter.string(from: 1.236)
Run Code Online (Sandbox Code Playgroud)

这现在锁定小数位数正好为2.通过增加最小小数位数,可以附加更多"0",如0.10可能的那样0.100.最大分数位数只会限制数字显示的位置.

还有其他选项,例如制作1234567.89节目,1.234.567,89这对于习惯于这种格式化的用户来说非常好.