Strona 1 z 1

Base przy dzieleniu z góry zaokrągla do2 miejsc po przecinku

PostNapisane: Pn lut 26, 2018 9:36 am
przez busik
Zarówno taki kod jak i taki dają wyniki zaokrąglone do 2 miejsca po przecinku w BASE. Gdziekolwiek indziej są to liczby niewymierne

Kod: Zaznacz cały   Rozszerz widokZwiń widok
select 5.3423/4.23423 from dowolna_tabela


Kod: Zaznacz cały   Rozszerz widokZwiń widok
SELECT DISTINCT CAST(325 as double)/69 from DOWOLNA_TABELA


W innych bazach, nawet na sql on line w necie dostaje precyzyjne wyniki z wieloma miejscami po przecinku.

Co jest?

Funkcja AVG też dokładniej niż do 2 miejsca mi nie zwraca wyników.

Re: Base przy dzieleniu z góry zaokrągla do2 miejsc po przec

PostNapisane: Pn lut 26, 2018 10:53 pm
przez Jan_J
Zachowanie dla mnie jest niezrozumiałe.
Wygląda trochę jak konwersja z double do decimal, z prezycją sterowaną przez wyrażenie.
Najbardziej niepokoi, że w surowym wydruku sql widać to samo, a nawet w update pole obliczone z ilorazu ma ten sam problem.
Ktoś przekombinował? co z QA?

Czy to problem Base'a, czy wbudowanej bazy HSQL?

Re: Base przy dzieleniu z góry zaokrągla do2 miejsc po przec

PostNapisane: Pn lut 26, 2018 10:58 pm
przez busik
Juz wiem. Uczennica moja znalazla:) Otóż widok odpowiedzi kwerendy jest tabelką która ma swoj format jak komorki arkusza kalkulacyjnego!. Klikajac prawym klikiem w tytył kolumny odpowiedzi zauwazamy, ze w takim przypadku jest tam format pokazujacy domyslnie dwa miejsca po przecinku. ZGROZA. Ale problem rozwiązany :)

Re: Base przy dzieleniu z góry zaokrągla do2 miejsc po przec

PostNapisane: Pn lut 26, 2018 11:41 pm
przez Jan_J
Jeszcze jedno: stała rzeczywista bez jawnej konwersji typu jest traktowana jako decimal, stąd iloraz jest również decimal.
Tym razem jest to skutek zachowania HSQL. Nie wiem czy zgroza, ale mocno mylące.