2015-01-07 8 views
6

Как вы можете печатать текст с фактическим знаком% в нем с помощью printf/sprintf? напримерКак избежать% в printfn/sprintf?

let fn = 5 
printf "%i%" fn 

дает ошибку компиляции. Очевидный \% тоже не работает.

ответ

8

Используйте «%%», где вы хотите получить% в выходном тексте.

Из примера выше

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

будет счастливо печатать «5%»

(Кроме того, если вы хотите напечатать «% 5» по какой-то причине, единственный способ я нашел для конкатенации строк т.е.

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

потому

printf "%%%i" 5 

не будет работать)

+4

Стоит отметить, что была ошибка в исходной F # 3.1 выпуска, где 'printfn«%%»' начал печатать «% % "вместо"% ". Если кто-то сталкивается с этим, 3.1.1 и последующие обновления исправили его. – latkin

2

Вы всегда могли бы сделать что-то вроде:.

let fn = 5 
printf "%i%s" fn "%" 
Смежные вопросы