将数字打印到可变小数位数

我想在C中打印一个数字到可变数量的小数位。我已经编写了代码

#include main() { int a; printf("Upto which number of decimal places you want to print value of '2.554648' ?"); scanf("%d", &a); printf("Value of '2.554648 upto %d number of decimal places = %.af", a, 2.554648); return 0; } 

printf()使用*来标记您想要的小数位数:

 #include  int main(void) { int a; printf("Upto which number of decimal places you want to print value of '2.554648' ?"); scanf("%d", &a); printf("Value of '2.554648 upto %d number of decimal places = %.*f", a, a, 2.554648); return 0; } 

你需要*格式说明符。 这是一个简短的例子(参见ideone ):

 #include  int main(void) { int a = 5; double temp = 5.0 / 7; printf("%.*f",a, temp); return 0; }