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

Поле REAL

Добавлено: 15 Июль 2011, 2:17
Lenkov
C6.3 9056 АВС
В словаре поле базы данных *.TPS было описано как REAL @N10_. Потребовалось изиенить его на REAL @N16_.
И тут начались чудеса. Из проги вводится 16 цифр но две последние округляет (вместо 218 пишет 220)
Если вводить число в это поле в словаре,получается то же самое. А если вводить в пустое поле, вводит только 10 цифр. Что это может быть?

Re: Поле REAL

Добавлено: 15 Июль 2011, 13:32
Алексей- Софт-Центр
Добрый день!
ВСЕ НАПИСАНО В ДОКЕ:

REAL An eight-byte floating point number.

Format: ± exponent significand

| . | ........... | ..................... |
Bits:63 62 52 0
Range: 0, ± 2.225073858507201e-308 .. ± 1.79769313496231e+308
(15 significant digits)

Отсюда и округления.

Алексей

Re: Поле REAL

Добавлено: 18 Июль 2011, 1:07
Lenkov
Не понял, что же нужно сделать, чтобы округления небыло??

Re: Поле REAL

Добавлено: 18 Июль 2011, 10:58
WadimZapara
Вам написали: тип REAL имеет точность только 15 значащих цифр. Шестнадцатую цифру округляет по определению типа.
Вывод:
А) использовать не более 15 знаков
либо
Б) использовать другой тип

Re: Поле REAL

Добавлено: 19 Июль 2011, 2:15
Lenkov
Спасибо!