如何在 printfn / sprintf 中转义 %?

How to escape % in printfn / sprintf?

如何使用 printf/sprintf 打印带有实际 % 符号的文本?例如

let fn = 5
printf "%i%" fn

给出编译错误。显而易见的 \% 也不起作用。

在输出文本中需要 % 的地方使用“%%”。

来自上面的例子

let fn = 5
printf "%i%%" fn

会愉快地打印“5%”

(此外,如果您出于某种原因想要打印“%5”,我发现的唯一方法是连接字符串,即

"%"+ (printf "%i" 5)

因为

printf "%%%i" 5

也不行。)

你总是可以这样做:

let fn = 5
printf "%i%s" fn "%"