Avatar ·

Swift中浮点数的精确格式化:字符串格式说明符

大家好!我刚开始学习Swift,在格式化浮点数时遇到了问题。我需要输出一个Double类型的值,并指定小数点后的位数,例如2位。在其他语言如C或Java中,我使用类似%.2f的格式说明符,但在Swift中这似乎不能直接工作。

以下是我尝试过的:

let pi = 3.1415926535
let formatted = String(format: "%.2f", pi)
print(formatted) // "3.14" — 有效!

但是当我尝试使用String(format:)配合其他说明符时,例如科学记数法的%e或自动选择格式的%g,我得到了奇怪的结果。此外,我还需要按字段宽度对齐数字,在左侧添加空格或零。例如,让数字42.1变成"042.10"。

我读过关于NumberFormatter的内容,但它对于简单的格式来说似乎过于繁琐。