powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / неправильное окргуление ASA9
10 сообщений из 10, страница 1 из 1
неправильное окргуление ASA9
    #37949936
markamarka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

есть 3 поля (f1,f2,f3) в таблице тип у них numeric(20,8)

если написать select f1/f2 , то результат показывает правильно
а при update f3=f1/f2 округляет до 6-ти знаков после запятой, а мне надо до 8-ми

как сделать чтоб округляла до 8-ми знаков
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950376
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через принудительное приведение?
f3= convert(numeric(20,8), convert(numeric(20,8),f1) / convert(numeric(20,8),f2))

А еще можно так:
f3 = ((f1*100) / (f2*100)) /100
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950422
White Owlf3 = ((f1*100) / (f2*100)) /100
чтоб на каждое умножение приходилось 2 деления?)
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950649
markamarka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlЧерез принудительное приведение?
f3= convert(numeric(20,8), convert(numeric(20,8),f1) / convert(numeric(20,8),f2))

А еще можно так:
f3 = ((f1*100) / (f2*100)) /100


1. не помогает он даже на select обрезает
select convert(numeric(20,8), convert(numeric(20,8),154.69764166) / convert(numeric(20,8),137754)),154.69764166/137754

2. тоже не сработал

пробовали в опциях scala поменять на 8 не помогло
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950698
Round8.Fight!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
markamarka,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table #t1(f1 numeric(20,8),f2 numeric(20,8),f3 numeric(20,8) null)

insert #t1(f1,f2)
select 154.69764166,137754

UPDATE #t1 SET f3 = round(f1/f2,8)

select * from #t1

drop table #t1



f1f2f3154.697641661377540.001123
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950704
Round10.Fight!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oh,sorry!

Код: sql
1.
2.
3.
...
UPDATE #t1 SET f3 = convert(numeric(20,8),round(f1/f2,10))
...



f1f2f3154,697641661377540,00112299
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950706
хмммм....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А первый-то вариант, ИМХО, правильнее
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950733
markamarka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовала слово в слово

у меня все равно в f3 записала 0,00112300 :(
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950738
markamarka,
а что, по вашему, там должно быть?
0,0011229992716000987 при округлении до 8 знаков дает ровно 0,00112300
...
Рейтинг: 0 / 0
неправильное окргуление ASA9
    #37950852
markamarka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
действительно уже поняла, что округляет правильно

извините за глупый вопрос

спасибо всем

просто суммарно мне в итоге дает большую погрешность хотелось ее уменьшить
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / неправильное окргуление ASA9
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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