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

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

20.10.2009, 17:33. Показов 28498. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru