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

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

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

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

24.10.2009, 20:07. Просмотров 14797. Ответов 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.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2009, 20:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменная float - знаки после запятой (C++):

знаки после запятой , формат float - C++
я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная...

знаки после запятой - C++
Здравствуйте, простой вопрос на который я никак не могу найти ответ. Почему после компиляции, программа отказывается показывать знаки...

Округление после запятой float - C++
Как прописать формат что бы после запятой было только 2 числа? Тип: FLOAT P.S. Код с пояснениями пожалуйста, изучение начал недавно.

Табуляция и знаки после запятой - C++
Здравствуйте, помогите пожалуйста. Как сделать так, чтоб программа выводила данные в нормальном виде, То есть одинаковое количество...

Ограничение количества знаков после запятой (float) - C++
В данном примере , происходит ограничение знаков после запятой для всех переменных float, строками 12,13. А как составить код для...

установление цыфр после запятой типа float - C++
В данном коде хочу что бы к введённому числу прибовлялось 3 и оно возвращалось бы в том же виде. int main() { float a, b; cout...

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

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

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


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

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

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

А если тебе знаки после запятой важны тока при выводе то и вывести ты их можешь через char
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
24.10.2009, 21:19 #11
From_Tula, это геморищя
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.10.2009, 21:49 #12
Visual Studio 2010 Beta 2
Этой среды у меня нет что бы проверить, но попробуйте так:
C
1
printf("%g",peremennaya);
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
24.10.2009, 23:35 #13
МедведЪ, В его ситуации иного гемороя не вижу)
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
25.10.2009, 07:48 #14
From_Tula, тема и есть ГЕМОР
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 07:48
Привет! Вот еще темы с ответами:

В массиве double обрубаются знаки после запятой - C++
Всем привет и хорошего настроения! Мой вопрос: почему при выводе простого массива, элементы которого типа double, уменьшается количество...

Функция stod отбрасывает знаки после запятой - C++
Добрый день. Подскажите, почему функция stod может отбрасывать все символы после точки? double* OpValue = new double; cout <<...

При переводе из double в string теряются знаки после запятой - C++
Перевожу переменную double в string stringstream sst; string f_str; double f=12345.99; sst << f; f_str=...

Как определить для типа float число цифр после запятой - C++
Здравствуйте! Помогите, пожалуйста с заданием: нужно для чисел типа float определить точное число цифр после запятой, без использования...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.10.2009, 07:48
Ответ Создать тему
Опции темы

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