Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13

Отображение округленного числа в ячейке и .Value

16.02.2023, 09:27. Показов 1575. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане! Возможно, вопрос рассматривался, я честно искал но не нашел.

Такая проблема - беру .value ячейки, привожу к Single, плюсую к нему, округляю раундом до 4 знака и снова записываю в .value ячейки.

Visual Basic
1
Worksheets("Лист1").Cells(1, 1).Value = Round(CSng(TextBox1.Text), 4)
При этом получается, что отображается в ячейке округленное значение, а .value имеет другую точность и большее количество знаков. Надеюсь на скрине ясно, что я хочу сказать.
Можно ли с этим что то сделать, чтобы .value ячейки был точно четырехзначным или это невозможно с данными типа Single?
Миниатюры
Отображение округленного числа в ячейке и .Value  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.02.2023, 09:27
Ответы с готовыми решениями:

Отображение числа и % в скабках в одной ячейке
Добрый вечер. Кто-нибудь подскажите формулу, что бы в ячейке отображалось число (сумма значений нескольких ячеек, например в моем...

Вывод округленного float числа с указанием значка %
Стоит задача вывести проценты с округлением до большего. Код следующий: float sum = (win/3)*100; Вывожу так: ...

Отображение картинки в ячейке ТЧ УФ
Добрый день! В ТЧ УФ добавил реквизит "кнопка", с типом данных "картинка", перенёс на форму, в реквизите формы "Вид" -...

32
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
16.02.2023, 12:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Jack Famous Посмотреть сообщение
а лучше вообще не использовать
Тоже соглашусь, но эта опция не от хорошей жизни родилась.
Цитата Сообщение от Jack Famous Посмотреть сообщение
но всё это довольно легко учесть и обговорить в условиях контракта или чего-то ещё.
Да если бы - контракт я со второй стороной заключаю, а НДС плачу налоговой, с ней договариваться - себе дороже. Сейчас бухи говорят, что программа онлайн это делает и все сама учитывает, а тогда, когда столкнулся, никто не мог внятно объяснить, что с ним делать - забьют на эту копейку или прямо расстреляют. Я тупо написал во втором платеже на копейку больше, всех это устроило.
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
16.02.2023, 12:12
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
написал во втором платеже на копейку больше
надеюсь, платежи не слишком дробятся, а то так можно и в минус уйти
0
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
16.02.2023, 12:41

Не по теме:

Цитата Сообщение от Jack Famous Посмотреть сообщение
а то так можно и в минус уйти
Достоевский встречает Раскольникова на улице:
— Что-ж ты, Родя? Старушку за 20 копеек топором...
— Не скажите, Федор Михалыч! Пять старушек - уже рупь!

0
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
16.02.2023, 13:37  [ТС]
Подведем итоги (скорее для начинающих, чтобы не попасть в такую же ситуацию):
1. Всем спасибо за ответы.
2. Точности типа Single недостаточно для "аккуратного" округления до 4 знака.
3. Неясно, какой тип данных возвращает Round. Здесь не написано: https://learn.microsoft.com/ru... d-function
4. Метод WorksheetFunction.Round возвращает Double, которого достаточно для "аккуратного" округления до 4 знака.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4087 / 2468 / 514
Регистрация: 13.12.2016
Сообщений: 8,396
Записей в блоге: 5
16.02.2023, 14:00
Цитата Сообщение от Nimael Посмотреть сообщение
Подведем итоги (скорее для начинающих, чтобы не попасть в такую же ситуацию):
Вот и получается, что вы умный, а помогайки так... погулять вышли.
0
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
16.02.2023, 14:05  [ТС]
АЕ, эмм... вроде бы я такого не писал, и ввиду не имел. Еще раз - я благодарен всем, кто ответил, выводы сделаны на основе этих самых ответов, и возможно, помогут кому-то еще.
0
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
16.02.2023, 14:12
Цитата Сообщение от Nimael Посмотреть сообщение
Неясно, какой тип данных возвращает Round.
Debug.Print TypeName(Round(12.1421, 2))
1
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
16.02.2023, 16:14  [ТС]
Dinoxromniy,
Так не пойдет, надо:
Dim a As Single
a = 0.25644
Debug.Print TypeName(Round(a, 4))

Если вводить просто числа будет либо Integer, либо Double.
Если явно указан тип переменной вернет того же типа.
0
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
16.02.2023, 16:21
Цитата Сообщение от Nimael Посмотреть сообщение
Так не пойдет, надо:
Nimael, нет, меня из дальнейшей цепочки пожалуйста исключите, мне кажется вы самостоятельно справитесь.
Цитата Сообщение от Nimael Посмотреть сообщение
Если вводить просто числа будет либо Integer, либо Double.
Если явно указан тип переменной
Тут видимо придется-таки поучаствовать:
Visual Basic
1
2
3
4
Sub nm()
Debug.Print TypeName(12)
Debug.Print TypeName(12.1)
End Sub
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
16.02.2023, 16:24
Nimael, а какой ответ вы ждете, округляя целое число до четвертого знака после запятой?
1,0000 ?

Добавлено через 1 минуту
Так это вам надо к FORMAT$ обращаться.
0
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
16.02.2023, 16:32  [ТС]
Dinoxromniy,
В вашем примере 2 строка вернет integer, 3 вернет double.


Dim a As Single
a = 12
Debug.Print TypeName(Round(a, 4)) - вернет Single
Debug.Print TypeName(Round(12.1, 4)) - вернет Double
Debug.Print TypeName(Round(12, 4)) - вернет Integer
Debug.Print TypeName(WorksheetFunction.Round(a, 4)) - вернет Double
Debug.Print TypeName(WorksheetFunction.Round(12.1, 4)) - вернет Double
Debug.Print TypeName(WorksheetFunction.Round(12, 4)) - вернет Double
Добавлено через 3 минуты
SergioJek, это к тому, что для функции Round не описано какой тип она возвращает в отличие от WorksheetFunction.Round.
0
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
16.02.2023, 16:36
Цитата Сообщение от Nimael Посмотреть сообщение
В вашем примере 2 строка вернет integer, 3 вернет double.
Я вам не пример привел, а метод "как достоверно узнавать тип результата". Вы же именно этот вопрос задали? Теперь есть понимание, какой тип результата Round выдает? Дальше - сами. А я чай пошел пить. С рогаликами.

Насколько я помню Кузьменко, результат операции будет иметь наименьшую размерность, имеющую требуемую точность. В других языках может быть другой алгоритм, я недавно писал про разницу с той же Java.
0
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
16.02.2023, 16:40  [ТС]
Dinoxromniy, получается что результат операции все же не будет иметь наименьшую размерность, а будет зависеть от типа исходных данных. Если округляется переменная, тип данных который прямо указан, то он и вернется.
Приятного чаепития!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2023, 16:40

Отображение данных в ячейке DataGridView
Как сделать, чтоб при вводе любых данных в ячейку оно подставляла "КГ" после цифры, которую я ввёл?

Отображение формулы в ячейке vba
Добрый день! У меня следующий вопрос. Как с помощью vba записать в ячейку формулу для расчетов, если конкретных ячеек у меня нет и...

Выборка данных и отображение в новой ячейке
Здравствуйте, форумчане. Помогите решить задачу: в столбце "F" (в прикрепленной таблице) есть данные вида "195/50R15", нужно...

Отображение в ячейке результата вместо формулы
У меня задание на работе не совсем из стандартного курса пользования вба, но тем не менее сделать надо. Мне нужно, чтобы цифра в ячейках...

Отображение номера страницы в ячейке сквозной строки
Добрый день! Имеется документ с шапкой в виде сквозных строк. В одной из ячеек шапки при распечатке должен отображаться номер страницы....


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru