Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/153: Рейтинг темы: голосов - 153, средняя оценка - 4.67
 Аватар для Nasty_
1 / 1 / 0
Регистрация: 22.09.2009
Сообщений: 36

Ограничить у числа вывод знаков после запятой

20.10.2009, 17:33. Показов 28545. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как сделать, чтобы ограничить у числа вывод знаков после запятой, когда мы его выводим в Label1?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2009, 17:33
Ответы с готовыми решениями:

Ограничить число знаков после запятой
double timer = Pa; Label1->Caption = timer/60; Здравствуйте, допустим у меня есть переменная Па, и я хочу что бы она выводилась в...

StringGrid, как ограничить количество знаков после запятой?
считываю данные из файла и записываю в таблицу StringGrid. в ней вместо, например, 0,63 выводится 0,6299997.. не подскажете как разрешить...

Memo вывод значений с точностью до 3 знаков после запятой
Здравствуйте. Есть такая проблема. Как вывести в компоненте мемо число типа double с точностью до 3 знаков? искал в инете не нашел....

11
81 / 81 / 6
Регистрация: 14.09.2009
Сообщений: 252
20.10.2009, 18:57
использовать функцию FloatToStrF. Вот ее прототип:
C++
1
static AnsiString __fastcall FloatToStrF(long double value, TStringFloatFormat format, int precision, int digits);
Вот вольный перевод хелпа:
Параметр format управляет форматом результирующей строки.
Параметр precision определяет точность заданного значения. Он должен быть 7 или меньше для значений типа float, 15 или меньше для значений типа double, а 18 или меньше для значений типа Extended.
Значении параметра digits зависит от конкретного выбранного формата.

Скорее всего вам нужно следующее:
C++
1
2
3
// Выводит число, с 4 знаками после запятой. 2 - это минимальное кол-во цифр
// которое будет выводится в экспонециальном виде, ну, это если не влезет в этот формат
Label1->Text=FloatToStrF(f, sffGeneral, 4, 2);
2
 Аватар для Nasty_
1 / 1 / 0
Регистрация: 22.09.2009
Сообщений: 36
20.10.2009, 19:46  [ТС]
- написала, как вы мне посоветовали, но мне выдает такое сообщение

[C++ Error] Unit1.cpp(156): E2247 'TControl::Text' is not accessible
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.10.2009, 22:20
Nasty_, покажите, что именно вы написали, ошибка говорит, что вы пытаетесь обращаться к приватным свойствам компонента
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
20.10.2009, 22:25
[C++ Error] Unit1.cpp(156): E2247 'TControl::Text' is not accessible
Да просто по той причине, что у Label нету Text, у него Caption. Это GAV 13 перепутал.
Да и не sffGeneral, а ffGeneral.
2
 Аватар для Nasty_
1 / 1 / 0
Регистрация: 22.09.2009
Сообщений: 36
20.10.2009, 23:31  [ТС]
Да с этим я уже разобралась, только вот все равно, в Label1 у меня ничего не выводится(,

C++
1
Label1->Caption.FloatToStrF(S.x, ffGeneral, 4, 2);
использовала эту конструкцию, но увы там по умолчанию 0;

а если написать

C++
1
Label1->Caption=S.x;
- то число выводиться, только очень много знаков после запятой

S.x - тип float;

Может есть иной способ?
0
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
21.10.2009, 09:27
Цитата Сообщение от Nasty_ Посмотреть сообщение
Да с этим я уже разобралась, только вот все равно, в Label1 у меня ничего не выводится(,

C++
1
Label1->Caption.FloatToStrF(S.x, ffGeneral, 4, 2);
использовала эту конструкцию, но увы там по умолчанию 0;

а если написать

C++
1
Label1->Caption=S.x;
- то число выводиться, только очень много знаков после запятой

S.x - тип float;

Может есть иной способ?

C++
1
Label1->Caption=FloatToStrF(S.x, ffGeneral, 4, 2);
если это финансовые вычисления, то FloatToStrF не мопожет, там надо округлять...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
21.10.2009, 09:31
а если так сделать:
C++
1
Label1->Caption = FloatToStrF(S.x, ffGeneral, 4, 2);
0
 Аватар для Nasty_
1 / 1 / 0
Регистрация: 22.09.2009
Сообщений: 36
21.10.2009, 17:52  [ТС]
Вот так чудеса, помогло, очень вам благодарна.

Интересно, почему вот так не работает
C++
1
Label1->Caption=FloatToStrF(S.x, ffGeneral, 4, 2);

И еще маленький вопросик, как в один Label можно вывести несколько данных допустим S.x S.y
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
21.10.2009, 17:53
C++
1
Label1->Caption=FloatToStrF(S.x, ffGeneral, 4, 2) + " " + Label1->Caption=FloatToStrF(S.y, ffGeneral, 4, 2);
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
21.10.2009, 19:05
Обидно, но так не работает(хотя работает с любой AnsiString):
C++
1
Label1->Caption.sprintf("%0.2f - %0.2f",S.x,S.y);

так как SetWindowText вызывается только при выполнении operator=

Поэтому я делаю всегда так:
C++
1
2
String s;
Label1->Caption=s.sprintf("%0.2f - %0.2f",S.x,S.y);

Или даже так(глупо, конечно):

C++
1
Label1->Caption=Label1->Caption.sprintf("%0.2f - %0.2f",S.x,S.y);
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
15.03.2011, 13:44
C++
1
2
AnsiString s;
edit->Text=(AnsiString)s.sprintf("%0.6f",Z);
вот так точняк все работает в 2010 билдере
проверено
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2011, 13:44
Помогаю со студенческими работами здесь

Как ограничить вывод числа (число цифр после запятой)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Вывод числа с ограниченным количеством знаков после запятой
float m; m = (6.0221412927*pow(10,23.0))/23; cout <<"Количество атомов в 1 мг Натрия = "<<m<<endl<<endl; Как...

Ограничить количество знаков после запятой
Добрый день Пусть имеется код: double a = 1/131231413; label16.Text = a.ToString(); В label16 выводится вот такое число ...

Ограничить количество знаков после запятой
Ребят, что нужно поменять чтобы после запуска в массиве получались числа с меньшим количеством знаков после запятой? а то вот такие...

Ограничить количество знаков после запятой
Помогите решить такую проблему: при вычислении какого-либо значения мне требуется чтобы не было более 4х знаков после запятой, т.е. шло...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru