簡體   English   中英

帶有 %f 的 C printf 其小數位基於 %d?

[英]C printf with %f whose decimal places is based on %d?

我可以用printf("Value: %0.4f\\n", value)打印到小數點后四位; 但是,有沒有辦法使小數位數成為插入%d的值?例如,類似於:

double x = 3.434244;
int decimalPlaces  = 4;
printf("Value: %0.%df\n", x, decimalPlaces);

您可以使用*代替字段寬度或精度,在這種情況下,需要使用int來填充該值。

printf("Value: %0.*f\n", decimalPlaces, x);

@dbush 的答案就是你要走的路。 但為了完整起見,您還可以格式化格式化字符串:

sprintf(fmt, "Value: %%.%df\n", decimalPlaces);
printf(fmt, x);

注意printf()用於轉義%的雙%%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM