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

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

20.10.2009, 17:33. Показов 28040. Ответов 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
8784 / 2537 / 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
8784 / 2537 / 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
8784 / 2537 / 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
Ответ Создать тему
Новые блоги и статьи
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »