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

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

20.10.2009, 17:33. Показов 28421. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru