Страница 1 из 1

Опять про округление....

Добавлено: 23 июл 2002, 01:40
sol
Коллеги, объясните, пожалуйста почему при вводе цены с копейками, например, в документе-основании Галактика заносит в Spstep.price не 47.67, а 47,6699999999999917.
Настройки округления не помогают, если конечно не округлить до целого числа. Почему в поле Spstep.price не заносится цифра, которую я набираю с клавиатуры? Никто не разобрался по какому алгоритму заносятся числа? Или это глюк Btrieve? Прияем закономерности нет никакой, может занести дробное число, как набрано с клавиатуры, а может последнюю цифру растащить до 16 знака после запятой. Кто не сталкивался с этой проблемой- станьте на поле с ценой и нажмите Ctrl+F4 (вызов вычислителя)и увидите число которое реально записано в таблице....

Re: Опять про округление....

Добавлено: 23 июл 2002, 10:46
ALEKS123
А никто не знает по какому алгоритму они вносятся. Например 1,5 один раз может "занестись" как 1,5000000000001, а в другой раз как 1,499999999888. :-/ Когда только начинал работать с Галкой, в ДТП получил такой ответ - числа описаны как DOUBLE, поэтому что там происходит.. ??? ??? ??? ??? На сем успокоился. И больше не выясняю.

Re: Опять про округление....

Добавлено: 23 июл 2002, 12:38
m0p3e
Это именно трабла double! И не только Бетрив. Столкнулся когда писал на дельфях учет семейного бюджета. Типа домашней бухгалтерии. БД брал Paradox и dBase. В обеих наталкивался на такой эффект. Пришлось округлять при выборе данных до 2-х знаков.

Re: Опять про округление....

Добавлено: 10 авг 2002, 23:06
Fortune_SC
1,5000000000001 или 1,499999999888 - какая разница

добави в cfg

[Common]
DeltaDouble=0.00001

и у тебя будет 1,5 (в расчетах)

и неважно что он там по Ctrl+F4 пишет 8)