#include <stdio.h>
int main() {
int a = 3;
float b = 6.412355;
printf("%.*f\n",a,b);
return 0;
}
Почему выходной сигнал;Спецификатор формата в C нечеткий
6.412
Каков эффект. * Здесь?
#include <stdio.h>
int main() {
int a = 3;
float b = 6.412355;
printf("%.*f\n",a,b);
return 0;
}
Почему выходной сигнал;Спецификатор формата в C нечеткий
6.412
Каков эффект. * Здесь?
.
означает, что следующие символы указывают точность использования. Значение *
означает чтение значения из списка аргументов; в вашем случае он будет читать a
. Значение равно 3, поэтому следующий аргумент будет напечатан до 3 знаков после запятой.
, если у вас был = 4, ответ был 6,4124, но я ожидал 6.4123 – user2799508
Это то, что в документации * сказал * вы должны ожидать? –
@ пользователь2799508: принтf раунды до ближайшего. Поскольку следующая цифра равна «5», это означает, что «6.4124» является правильным выходом для точности в 4 десятичных разряда. –
#include <stdio.h>
int main() {
int a = 3;
float b = 6.412355;
printf("%.*f\n",a,b);
return 0;
}
Это substiutes значение a
к *
, подразумевая точность.
В printf
функция %[flags][width][.precision][length]specifier
этого вопроса: .precision
, у него есть два варианта выбора или *
.
Когда *
, это означает, что точность не указана в строке формата, а как дополнительный аргумент целочисленного значения, предшествующий аргументу, который должен быть отформатирован.
Для получения более подробной информации см http://www.cplusplus.com/reference/cstdio/printf/
Это был лучший ответ. Лучшим послушником может стать ** прочитать документацию **. Вот о чем был этот ответ, и он не только сказал OP, чтобы сделать это, но и не только предоставил ссылку на соответствующую документацию для рассматриваемого дела, но также и на «лучший» онлайн-сборник документации по всему предмету площадь. К сожалению, @chaoqi предпочла следовать совету нижнего лидера и дать ОП готовой жареной рыбе вместо того, чтобы преподавать ОП, как ловить рыбу. Итак, удалив мой верхний план. :-( –
что я должен сказать .... – George
следуй за своим сердцем. :) –
[Это] (http://www.cplusplus.com/reference/cstdio/printf/) является первым результатом Google ** PRINTF с **. –
вместо cplusplusref, предпочитайте сообщество ** [cppreference site] (http://en.cppreference.com/w/cpp) **. это более точно. –