Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 107, средняя оценка - 4.70
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
#1

Переменная float - знаки после запятой - C++

24.10.2009, 20:07. Просмотров 14353. Ответов 13
Метки нет (Все метки)

Итак я задаю какую-либо переменную типа float.
Потом, с помощью scanf кладу в эту переменную значение 3.2 (к примеру.)
Затем, с помощью printf("%f",peremennaya); вывожу ее на экран.

Как мне сделать так, чтобы выводилось именно 3.2, а не 3.20000.
И чтобы если я вводил 3, то и выводилось 3, а не 3.00000...но, одновременно при вводу 3.123, выводилось 3.123, а не 3.12300.

Короче мне надо, чтобы переменные float выводились именно с таким кол-вом знаков после запятой, которые есть в переменной.

Если что - среда Visual Studio 2010 Beta 2.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:08     Переменная float - знаки после запятой #2
C
1
printf("%.2f",peremennaya);
Т.е. после точки указываешь кол-во знаков
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
24.10.2009, 20:14  [ТС]     Переменная float - знаки после запятой #3
Цитата Сообщение от niXman Посмотреть сообщение
C
1
printf("%.2f",peremennaya);
Т.е. после точки указываешь кол-во знаков
Нет, это просто два знака после запятой. А мне нужно чтобы прога сама определяла сколько знаков выводить(чтобы мне не печатало лишние 0)
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
24.10.2009, 20:15     Переменная float - знаки после запятой #4
Neonjke, а чем вам нули не нравятся?
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:16     Переменная float - знаки после запятой #5
Цитата Сообщение от Neonjke Посмотреть сообщение
мне нужно чтобы прога сама определяла сколько знаков выводить
По какому условию она будет определять?

Цитата Сообщение от Neonjke Посмотреть сообщение
чтобы мне не печатало лишние 0
Для этого нужно сделать так как я показал.
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
24.10.2009, 20:22  [ТС]     Переменная float - знаки после запятой #6
Цитата Сообщение от МедведЪ Посмотреть сообщение
Neonjke, а чем вам нули не нравятся?
Мешают.

Добавлено через 4 минуты
Цитата Сообщение от niXman Посмотреть сообщение
По какому условию она будет определять?


Для этого нужно сделать так как я показал.
Представьте, у меня программа для решения квадратных уравнений.
ax*x+bx+c=0

a b c я беру с клавиатуры. После ввода мне нужно ур-ие вывести. Но я же не знаю дробность числа, которое введет пользователь с клавиатуры. Поэтому если я везде укажу %2.f, а пользователь ввел 3.125, то он увидит не то. А если он ввел 2.1, то увидит 2.10.

Критерий - дробность числа. Если есть 2ой знак, введенный пользователем, то печатать с 2мя знаками после зап, если 3ий, то с 3мя...если нет, то выводить без запятой...
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:28     Переменная float - знаки после запятой #7
Понятно.
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
24.10.2009, 20:29  [ТС]     Переменная float - знаки после запятой #8
Цитата Сообщение от niXman Посмотреть сообщение
Понятно.
Так как это сделать?!
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
24.10.2009, 21:06     Переменная float - знаки после запятой #9
Neonjke, про ур-ие найди тему,которую я создал,там все решилось,и ты там найдешь ответа своего дорогого
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 481
24.10.2009, 21:15     Переменная float - знаки после запятой #10
Если тебе это прям так надо то могу предложить такой запарный вариант, например для каждого кол-ва знака ставишь отдельное условие, например если 2 знака после запятой то и выводишь %.2f и т.д.
Правда с подсчётом этих знаков будет запарно... Я думаю проще так сделать ввод не float а char. А потом спокойно подсчитываешь сколько знаков после запятой. И переводишь эту строчу в тип float.

А если тебе знаки после запятой важны тока при выводе то и вывести ты их можешь через char
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
24.10.2009, 21:19     Переменная float - знаки после запятой #11
From_Tula, это геморищя
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.10.2009, 21:49     Переменная float - знаки после запятой #12
Visual Studio 2010 Beta 2
Этой среды у меня нет что бы проверить, но попробуйте так:
C
1
printf("%g",peremennaya);
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 481
24.10.2009, 23:35     Переменная float - знаки после запятой #13
МедведЪ, В его ситуации иного гемороя не вижу)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 07:48     Переменная float - знаки после запятой
Еще ссылки по теме:
C++ Функция stod отбрасывает знаки после запятой
C++ При переводе из double в string теряются знаки после запятой
C++ Как определить для типа float число цифр после запятой
Переменной d присвоить первую цифру после запятой некоторой переменной x типа float C++
C++ float переменная

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
25.10.2009, 07:48     Переменная float - знаки после запятой #14
From_Tula, тема и есть ГЕМОР
Yandex
Объявления
25.10.2009, 07:48     Переменная float - знаки после запятой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru