Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > printf, отбростить дробную часть


Автор: lv151 5.11.2009, 18:03
Как с помощью printf сделать так чтобы 150.0000(double) выводилось как 150?

Автор: bsa 5.11.2009, 18:18
printf("%.0f",x);

Автор: Dov 5.11.2009, 22:54
или так:
Код
printf("%g",x);


Автор: Pitlord 5.11.2009, 23:01
Цитата(Dov @  5.11.2009,  22:54 Найти цитируемый пост)
printf("%g",x);

С чего Вы взяли?

Автор: Dov 5.11.2009, 23:31
Цитата(Pitlord @  5.11.2009,  22:01 Найти цитируемый пост)
С чего Вы взяли?

что именно?

Автор: Pitlord 5.11.2009, 23:35
Цитата(Dov @  5.11.2009,  23:31 Найти цитируемый пост)
что именно?

Что спецификатор %g отбрасывает дробную часть? Он же в зависимости от порядка величины будет аналогом либо %f, либо %e 

Автор: Cheloveck 5.11.2009, 23:37
http://cplusplus.com/reference/clibrary/cstdio/printf/ советую почитать где-то около .precision и в примерах показано.

Автор: Dov 5.11.2009, 23:55
Цитата(Pitlord @  5.11.2009,  22:35 Найти цитируемый пост)
Что спецификатор %g отбрасывает дробную часть? 


Pitlord, он не отбрасывает дробную часть, а 'отбрасывает' лишние нули после десятичной точки, равно, как и саму точку...
ТС что хотел? что бы 150.0000 выводилось, как 150. Он же не сказал, что хочет, что бы 150.12345 выводилось, как 150. Или я что-то не так понял?  smile 

Автор: bsa 6.11.2009, 00:50
тема называется "printf, отбростить дробную часть". Ответ дан. Кстати, %g хороший вариант, если не нужно только "отбросить".
Цитата(man 3 printf)
       g, G   The double argument is converted in style f or e (or F or E  for
              G  conversions).  The precision specifies the number of signifi‐
              cant digits.  If the precision is missing, 6 digits  are  given;
              if  the  precision is zero, it is treated as 1.  Style e is used
              if the exponent from its conversion is less than -4  or  greater
              than or equal to the precision.  Trailing zeros are removed from
              the fractional part of the result
; a decimal point appears  only
              if it is followed by at least one digit.

Автор: Dov 6.11.2009, 01:18
Цитата(bsa @  5.11.2009,  23:50 Найти цитируемый пост)
тема называется "printf, отбростить дробную часть". 

 smile  правильно. 

Как вы яхту назовёте, так она и поплывёт.   smile

Добавлено через 3 минуты и 42 секунды
и ещё один вариант:
Код
printf("%d",(int)150.0000);

Автор: lv151 6.11.2009, 11:36
thx.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)