Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / туплю WorksheetFunction.Sum / 9 сообщений из 9, страница 1 из 1
17.09.2009, 12:00:02
    #36200887
балбес111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
Простейший код:
Dim d, f, g As Double
d = Application.WorksheetFunction.Sum(Range(Cells(1, 2), Cells(1, 10))) 'в отладчике = 0.075
f = 0.075
g = Cells(1, 1).Value 'в отладчике = 0.075
If d > f Then
MsgBox ""
End If
If d > g Then
MsgBox ""
End If

Оба условия выполняются!! Хотя в обоих случаях в отладчике видно, что d= 0.075.

В чем проблема?
...
Рейтинг: 0 / 0
17.09.2009, 12:06:54
    #36200909
qwrqwr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
проверьте:
Код: plaintext
1.
2.
3.
4.
5.
If d > f Then
    MsgBox d - f
End If
If d > g Then
    MsgBox d - g
End If
балбес111
В чем проблема?в округлении чисел с плавающей запятой
PS а переменные d и f - вообще variant (вы в курсе?)
...
Рейтинг: 0 / 0
17.09.2009, 13:26:06
    #36201222
балбес111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
Вы правы. Если для переменной d использовать округление то все ок.
d=Round(Application.WorksheetFunction.Sum(Range(Cells(1, 2), Cells(1, 10))),3)
Но почему в отладчике, в watch том же, все 3 переменные показываются с одинаковым типом и значением? Чтобы жить было веселее?
...
Рейтинг: 0 / 0
17.09.2009, 13:37:08
    #36201274
qwrqwr_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
балбес111, про watch не знаю - а вообще, при работе с single/double (если эти типы действительно нужны) общее правило - cм. FAQ, Q19, A1
чтобы стало еще веселее - введите в ячейку Экселя =(0,8-(0,7+0,1))*10^17
...
Рейтинг: 0 / 0
17.09.2009, 13:50:23
    #36201347
балбес111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
Спасибо!
...
Рейтинг: 0 / 0
17.09.2009, 14:42:10
    #36201566
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
qwrqwr_введите в ячейку Экселя =(0,8-(0,7+0,1))*10^17
Прикольно... Это только с этими числами ? С другими считает правильно и возвращает 0...
...
Рейтинг: 0 / 0
17.09.2009, 14:43:54
    #36201579
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
=(0.9-(0.6+0.3))*10^17
...
Рейтинг: 0 / 0
17.09.2009, 15:33:56
    #36201782
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
весело...
...
Рейтинг: 0 / 0
17.09.2009, 17:11:43
    #36202249
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
туплю WorksheetFunction.Sum
да, веселимся по полной.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / туплю WorksheetFunction.Sum / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]