|
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
|
||||||
Отображение округленного числа в ячейке и .Value16.02.2023, 09:27. Показов 1607. Ответов 32
Метки нет (Все метки)
Добрый день, уважаемые форумчане! Возможно, вопрос рассматривался, я честно искал но не нашел.
Такая проблема - беру .value ячейки, привожу к Single, плюсую к нему, округляю раундом до 4 знака и снова записываю в .value ячейки.
Можно ли с этим что то сделать, чтобы .value ячейки был точно четырехзначным или это невозможно с данными типа Single?
0
|
||||||
| 16.02.2023, 09:27 | |
|
Ответы с готовыми решениями:
32
Отображение числа и % в скабках в одной ячейке
|
|
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
|
|||
| 16.02.2023, 12:09 | |||
|
0
|
|||
| 16.02.2023, 12:12 | |
|
0
|
|
|
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,431
|
||
| 16.02.2023, 12:41 | ||
|
Не по теме:
— Что-ж ты, Родя? Старушку за 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
|
|
|
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 | |
|
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 | ||||||||
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 | ||
|
Насколько я помню Кузьменко, результат операции будет иметь наименьшую размерность, имеющую требуемую точность. В других языках может быть другой алгоритм, я недавно писал про разницу с той же Java.
0
|
||
|
0 / 0 / 0
Регистрация: 16.02.2023
Сообщений: 13
|
|
| 16.02.2023, 16:40 [ТС] | |
|
Dinoxromniy, получается что результат операции все же не будет иметь наименьшую размерность, а будет зависеть от типа исходных данных. Если округляется переменная, тип данных который прямо указан, то он и вернется.
Приятного чаепития!
0
|
|
| 16.02.2023, 16:40 | |
|
Отображение данных в ячейке DataGridView Отображение формулы в ячейке vba
Отображение номера страницы в ячейке сквозной строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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) активировать флаг. . .
|