powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / вычисление формулы
5 сообщений из 5, страница 1 из 1
вычисление формулы
    #32176274
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставил Firebird 1.5 и увидел вот такой смешной глюк (или я торможу)
например:
table A c одним полем amount numeric(15,2)

пишем

insert into A (amount) values ( 530*(15/19)*0.25 );
заноситься 0

предположим глюки округления

пишем

insert into A (amount) values ( 530*(15.0/19.0)*0.25 );
заноситься 103.35

пишем

insert into A (amount) values ( 530*((15 * 1.0)/19.0)*0.25 );
заноситься 92.75

а теперь правильный ответ
104.605 !!!!!!!

чё делать не понятно
ПОМОГИТЕ
...
Рейтинг: 0 / 0
вычисление формулы
    #32176346
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Числа типа 15.0 конвертятся к float -> нужно явное преобразование типов:
Код: plaintext
1.
2.
3.
4.
5.
SELECT
  CAST( 530  AS DOUBLE PRECISION)*(
  CAST( 15  AS DOUBLE PRECISION)/
  CAST( 19  AS DOUBLE PRECISION))*
  CAST( 0 . 25  AS DOUBLE PRECISION)
FROM RDB$DATABASE

А вобще-то с округлениями в ИБ чё-то нехорошее и вправду ...
...
Рейтинг: 0 / 0
вычисление формулы
    #32176411
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что мне не select делать надо а insert. Необходимо внести в таблицу значение которое нельзя расчитать з
аранее - запрос составляеться программно на основе введенной пользователем формулы. Причем точность нужна именно 2 знака после запятой.
...
Рейтинг: 0 / 0
вычисление формулы
    #32176485
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это же селект для примера. Так же и вставку надо делать.
...
Рейтинг: 0 / 0
вычисление формулы
    #32176787
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что от пользователя я всё получаю именно в виде строки содержащей выражение, причем какое именно я заранее не знаю
потом я "приклеиваю" к нему insert into... вначале и выполняю запрос

ну вот такая задача :(
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / вычисление формулы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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