|
Итог ТЧ документа через ComConnector | ☑ | ||
---|---|---|---|---|
0
Fram
02.10.12
✎
17:27
|
Из 82 в серверной процедуре тонкого клиента выполняю следующий код:
Коннектор = Новый COMОбъект("V81.ComConnector"); БП = Коннектор.Connect("..."); ... Док = БП.Документы.РеализацияТоваровУслуг.ПолучитьСсылку(БП.NewObject("УникальныйИдентификатор", ИД)); Сообщить(Док.Услуги.Итог("Сумма")) Вместо 80.85 получаю в окне сообщений 80.499999999999 ?! Это шо за фигня такая? |
|||
1
Wobland
02.10.12
✎
17:29
|
а если другими методами документ получить?
|
|||
2
IronDemon
02.10.12
✎
17:29
|
2+2=3.99999999999
|
|||
3
ptiz
02.10.12
✎
17:30
|
(0) Округляй.
|
|||
4
Maxus43
02.10.12
✎
17:31
|
до сих пор помню как на паскале чото псиал, 9 / 3 = 2.9999999999999
|
|||
5
acsent
02.10.12
✎
17:31
|
такова природа вещ. чисел
http://habrahabr.ru/post/112953/ |
|||
6
Fram
02.10.12
✎
17:31
|
(3) ну это понятно.. 2 часа потраченного времени жалко просто
|
|||
7
acsent
02.10.12
✎
17:31
|
с целыми числами нет такого косяка
|
|||
8
DrShad
02.10.12
✎
17:32
|
а 80.85 каким способом получены?
|
|||
9
Fram
02.10.12
✎
17:32
|
(8) Это число в документе. Тип поля Число (15, 2)
|
|||
10
DrShad
02.10.12
✎
17:34
|
(9) уверен?
|
|||
11
DrShad
02.10.12
✎
17:35
|
+(10) итоги по колонкам ТЧ в документе не хранятся
|
|||
12
Fram
02.10.12
✎
17:36
|
(11) т.е. это нормально когда в поле написано 80.85, а Итог возвращает 80.499999999999?
|
|||
13
DrShad
02.10.12
✎
17:38
|
(12) в каком еще поле? ты глаза разуй
|
|||
14
Fram
02.10.12
✎
17:43
|
(13) в поле табличной части документа
|
|||
15
DrShad
02.10.12
✎
17:44
|
(14) у тебя в ТЧ есть поле Итог?
|
|||
16
Fram
02.10.12
✎
17:47
|
(15) а я где то написал что есть?..
у таб. части функция такая есть и в (12) я у тебя спросил считаешь ли ты нормальным что когда в поле написано число 80.85, функция Итог возвращает 80.499999999999? |
|||
17
Wobland
02.10.12
✎
17:48
|
(16) кто тебе не давал сказать, что в ТЧ одна строка с суммой 80.85, а получаешь итог от неё 80.49?
|
|||
18
DrShad
02.10.12
✎
17:48
|
[ когда в поле написано число 80.85]
|
|||
19
Fram
02.10.12
✎
17:48
|
ха!
Коннектор = Новый COMОбъект("V81.ComConnector"); БП = Коннектор.Connect("..."); ... Док = БП.Документы.РеализацияТоваровУслуг.ПолучитьСсылку(БП.NewObject("УникальныйИдентификатор", ИД)); Сообщить(Окр(Док.Услуги.Итог("Сумма"), 2)) Результат такой же 80.499999999999 |
|||
20
Fram
02.10.12
✎
17:48
|
(18) а я это поле разве Итогом назвал?
|
|||
21
Fram
02.10.12
✎
17:49
|
(18) что доказать то пытаешься?
|
|||
22
zbv
02.10.12
✎
17:49
|
по моему, как 80.499999999999 не округляй 80.85 не получится.
|
|||
23
DrShad
02.10.12
✎
17:51
|
(22) +1, что в (19) чувак принципиально нового увидеть :)))
|
|||
24
Fram
02.10.12
✎
17:53
|
посыпаю голову пеплом, опечатался 80,849999999999
|
|||
25
Wobland
02.10.12
✎
17:53
|
(24) мать-перемать!!
|
|||
26
Wobland
02.10.12
✎
17:54
|
+(25) до сих пор не дошло?
|
|||
27
Fram
02.10.12
✎
17:56
|
(26) ну и?
|
|||
28
Wobland
02.10.12
✎
17:57
|
||||
29
Wobland
02.10.12
✎
17:58
|
(27) у тебя не значение поля получается, а результат какой-то функции
|
|||
30
Serginio1
02.10.12
✎
17:58
|
в 1С чила хранятся в формате BCD, в ком нет такого вида числа как и Decimal. Все приводится к Double или ниже классом. А это уже двоичная запись
|
|||
31
Fram
02.10.12
✎
18:00
|
(30) это оправдывает такой результат функции?
|
|||
32
Fram
02.10.12
✎
18:00
|
Выпутался
Сумма = 0; Сумма = Сумма + Окр(Док.Услуги.Итог("Сумма"), 2); |
|||
33
DrShad
02.10.12
✎
18:01
|
(32) ну хвала великим яйцам
|
|||
34
Fram
02.10.12
✎
18:03
|
(33) спасибо за "помощь"
|
|||
35
DrShad
02.10.12
✎
18:03
|
(34) да мне то за что?
|
|||
36
Fram
02.10.12
✎
18:07
|
(35) ну не знаю.. а зачем писал посты в этой ветке?
|
|||
37
DrShad
02.10.12
✎
18:08
|
(36) да как бы пинал в нужном направлении :)
|
|||
38
Fram
02.10.12
✎
18:15
|
вот, давай ты ребенка своего будешь в нужном направлении пинать, а с форумчанами в другом тоне общаться
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |