MS SQL: jak =?iso-8859-2?Q?zamieni=E6_dok=B3adn=B1_liczb=EA?= nanvarchar?
Jacek Osiecki - 04-07-2007 00:01
MS SQL: jak =?iso-8859-2?Q?zamieni=E6_dok=B3adn=B1_liczb=EA?= nanvarchar?
Witam,
Niezależnie od tego, jak dokładny jest wynik obliczeń (tzn. ile ma miejsc po przecinku), gdy go tylko zamienię na nvarchar za pomocą:
cast (@wynik AS nvarchar(15))
to jest on znacząco obcinany - do 5, góra 6 miejsc po przecinku.
Czy da się dokonać konwersji float(53) -> nvarchar bez strat?
Pozdrawiam, -- Jacek Osiecki joshua@ceti.pl GG:3828944 "To nie logika, to polityka" (c) Kabaret pod Wydrwigroszem 2006
Sylwester Lewandowski - 04-07-2007 00:01
Witam,
Mam 2 wyjściam, wpardzie nie są one idealne, ale może pomogą:
1. Wykorzystać właściwość funkcji CONVERT
CONVERT (NVARCHAR(128),@wynik,2) lub CONVERT (NVARCHAR(128),@wynik,1)
pierwsza opcja jest bardziej dokładna, niestety wyniki są w notacji naukowej.
2. Najpierw przerzutować na DECIMAL, a potem na nvarchar.
SELECT CONVERT (NVARCHAR(128),CAST (@wynik AS DECIMAL(38,11)))
Tutaj jednak wyniki mogą się różnić ze wzgl. na różnice w zaokrągleniach przy większej dokładności dla DECIMAL.
Ciekaw jestem, czy ktoś znajdzie lepsze rozwiązanie.
Pozdr.
Jacek Osiecki napisał(a): > Witam, > > Niezależnie od tego, jak dokładny jest wynik obliczeń (tzn. ile ma miejsc po > przecinku), gdy go tylko zamienię na nvarchar za pomocą: > > cast (@wynik AS nvarchar(15)) > > to jest on znacząco obcinany - do 5, góra 6 miejsc po przecinku. > > Czy da się dokonać konwersji float(53) -> nvarchar bez strat? > > Pozdrawiam,
Jacek Osiecki - 05-07-2007 00:00
Dnia Tue, 03 Jul 2007 22:28:05 +0200, Sylwester Lewandowski napisał(a): > Mam 2 wyjściam, wpardzie nie są one idealne, ale może pomogą: > 1. Wykorzystać właściwość funkcji CONVERT > 2. Najpierw przerzutować na DECIMAL, a potem na nvarchar.
Dzięki, tego właśnie szukałem :)
Przy @wyn = 4.114592658907789
print CONVERT (nvarchar(15),CAST(@wyn AS decimal(14,13))) print CONVERT (NVARCHAR(128),@wyn,2)
dało:
4.1145926589078 4.114592658907789e+000
Tak więc zadowolę się tym decimalem, w zupełności wystarczy :)
Pozdrawiam, -- Jacek Osiecki joshua@ceti.pl GG:3828944 "To nie logika, to polityka" (c) Kabaret pod Wydrwigroszem 2006
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
[oracle] - Oracle SQL Developer - co to jest SID?
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
konkurs SQL Injection - 10 PLN na GSM dla pierwszej osoby, ktora dostanie sie do bazy
Re: Gdzie mozna jeszcze kupic Microsoft SQL 2000 Enterprise Edition??
EJB3 problem z mapowaniem kolumn
zanotowane.pldoc.pisz.plpdf.pisz.pllunadance.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|