Страница: 1 |
Вопрос: Правильное округление в Excel 7 | Добавлено: 09.09.08 18:04 |
Автор вопроса: ![]() |
Дамы и господа :)
Подскажите пожалуйста, как правильно использовать функцию Format, чтобы она просто округлила до 4го знака после запятой включительно, если число канеш дробное Эксперименты ставила, но её логику так и не осилила - результат полный рандом. Я так понимаю, передаваемое ей число надо сначала конвертнуть в строку? Т.е. если я ей передаю какую-то переменную дробного типа, то мне надо сделать Cstr? Со вторым параметром - полная лажа Надежда только на вас :) ЗЫ.Round не предлагать по известным причинам:(((( |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #1 | Добавлено: 09.09.08 20:52 |
Если мне нужно было округлить самой, делала так. Например, нужно округлить до десятых. К числу дробному + 0.5, а затем результат в формат (#.0).
Нужно округлить до сотых. К числу дробному + 0.05, а затем результат в формат (#.00). У меня без проблем всегда получалось. |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 11 |
Профиль | Цитата | #2 | Добавлено: 10.09.08 11:22 |
Не работает![]() Такая процедура из числа 2364.5123 при формате (#.0000) даёт 23645123, из 0.2 делает 2000 Есть какой-нить нормальный способ округления? Round точно можно хоронить? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #3 | Добавлено: 10.09.08 11:42 |
А как пишешь ? Так ? Format(дробное число, "#.0000"
![]() У тебя нигде не стоит умножение на 10000 ? А то что-то очень похоже. ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 11 |
Профиль | Цитата | #4 | Добавлено: 10.09.08 12:04 |
Format(Ячейка с числом, сохранённым как текст, "#.0000"![]() Нет умножения! В том то и дело, что нет. А мне надо сравнить числа на равенство Опытным путём вычислили, что на разных компах макрос вообще работает по-разному. На моём офисе 7 даже Round работает, на другом тупо перестаёт работать активация листа для вставки данных |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #5 | Добавлено: 10.09.08 12:34 |
a = "2351.28912"
Все нормально округляет.
MsgBox Format(a, "#.0000" ![]() a = 2351.28915 MsgBox Format(a, "#.0000" ![]() MsgBox Val ![]() P.S. Правда у меня Офис 2003 |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #6 | Добавлено: 10.09.08 12:35 |
MsgBox Val( a ), vbOKOnly 'преобразование строки в число. рез-т 2351.2892 Внимание на разделитель числа.
|
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #7 | Добавлено: 10.09.08 12:38 |
другом тупо перестаёт работать активация листа для вставки данных А как написано Sheets(2).Activate или Sheets(3).Select ? Более правильно 1.
|
Номер ответа: 8 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 11 |
Профиль | Цитата | #8 | Добавлено: 10.09.08 12:48 |
Вот последняя строка у меня возвращает 2351 и msgbox - ом и записывает в ячейку......![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 11 |
Профиль | Цитата | #9 | Добавлено: 10.09.08 12:48 |
Написано вариантом 1..... |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #10 | Добавлено: 10.09.08 15:03 |
Числовой разделитель в ячейке стоит ,
Вот так напиши: b=Val(Replace(Range("J10" Val корректно преобразует дробные только те, которые разделены "."
![]() ![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #11 | Добавлено: 10.09.08 15:08 |
Кстати, вот так и Round должен работать: Round(Range("J10" Округляет математически.
![]() |
Страница: 1 |
|