|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2018, 13:00 | #1 |
Регистрация: 23.03.2018
Сообщений: 8
|
Отобажение числовых данных в TextBox в виде обычных дробей
Может быть кто-нибудь подскажет, как в VBA excel отобразить формат числа в TextBox в виде дроби: например, 1/2, 1/3, 5/12 и т.д.
Код: Private Sub UserForm_Initialize() a = 0.2 b = 0.05 TextBox1 = a + b End Sub В указанном примере при запуске формы в TextBox будет отражено: 0.25. А мне нужно: 1/4. |
23.03.2018, 13:20 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
нет такого формата числа.
можете сами вычислять по алгоритму: Перевод десятичных дробей в обыкновенные дроби могут возникнуть сложности с некоторыми иррациональными числами. ну, например, допустим, что у Вас в переменной a находится 3, а в переменной b число 0,141592653589793238462643 Какую дробь нужно отобразить в TextBox ? |
23.03.2018, 13:39 | #3 |
Регистрация: 23.03.2018
Сообщений: 8
|
Спасибо за ответ.
Предложенный Вам метод понятен. Но, к сожалению, он работает не всегда, как и Вы и отметили. Например, если в примере a=1/3 и b=1/3, то метод не сработает |
23.03.2018, 13:44 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не обязательно 1/3. И 1/2 может быть такой, что не сработает, смотря как это число получено, вполне вместо ожидаемого 0.5 в переменной может быть 0.5000000000001 или 0.49999999999
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
23.03.2018, 13:53 | #5 |
Регистрация: 23.03.2018
Сообщений: 8
|
Да, примеров может быть множество.
У меня идея следующая. Есть Multipage, в которой каждая страница- это данные о человеке, владеющего долей в уставном капитале. При открытии каждой следующей страницы доля должна подставляться автоматически как разница между 1 и суммой долей, указанных в предыдущих страницах. Поскольку доли в уставном капитале указываются в дробях, то и подстановка должна быть в дробях. Оператор может изменить долю при необходимости, а может не менять. Ломаю голову, как этого добиться. Неужели никак? |
23.03.2018, 13:54 | #6 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Используйте функцию листа ТЕКСТ, например
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
23.03.2018, 13:56 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну и храни отдельно числитель и знаменатель в целых числах. А дальше правила приведения к общему знаменателю
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
23.03.2018, 14:01 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Казанский, а точно. недооценил я EXCEL. Там же есть тип "дробный".
Цитата:
точно так! И я про то же самое! |
|
23.03.2018, 14:09 | #9 |
Регистрация: 23.03.2018
Сообщений: 8
|
Отлично,
вариант worksheetfunction.Text (worksheetfunction.Pi,"# #/###") работает замечательно. Огромное спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Свод не числовых данных | Алекс1234376 | Помощь студентам | 0 | 08.03.2015 22:18 |
Функции. Пусть s- множество всех рациональных чисел, представимых в виде несократимых дробей m/n | veronika55214 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.12.2013 19:09 |
Создание класса дробей. Пример на сложение двух дробей. Помогите найти ошибку (С++) | Сергей.Ш | Общие вопросы C/C++ | 5 | 28.10.2013 13:24 |
Массив числовых данных С++ | ben74 | Помощь студентам | 1 | 07.02.2012 12:52 |
Ввод десятичных дробей в поля textbox формы | NikolayGVB | Microsoft Office Word | 9 | 26.04.2009 04:55 |