MySQL funkcia pre orezanie čísla na n desatinných miest
Zdravím,
potreboval by som poradiť akou funkciou je možné urobiť v mysql odseknutie čísla na n desatinných miest napr. 100,1234567 na 100,123 ak n=3.
Niekde som sa dočítal o funkcii trunc(x,n) ale to mi nefunguje??
Mám mysql databázu 4.1
Vdaka
[mod]zmena názvu, pôvodne: MYSQL FUNKCIA (los)[/mod]
Tá funkcia sa volá TRUNCATE.
http://dev.mysql.com/doc/refman/4.1/en/mathematical -functions.html
Ta funcia sice funguje ale nie celkom spravne - z cisla 60.0742717 mi spravi 60.0740
Nasiel som aj inu funkciu - format(x,n) ale ta zasa urobi 60.0743
pri n=4
Neexistuje ina funkcia, ktora by urobila 60.0742 ? Alebo je problem inde?
format ti ale vyrobi z toho cisla text, a pridava ciarky na kazde 3 miesta pred desatinnou bodkou.
Pozrel si si uz aj http://dev.mysql.com/doc/refman/4.1/en/numeric-type -overview.html a typ DOUBLE, ked mas problem ze nesedia posledne cifry u float?
X krat som menil typ a nakoniec som skoncil na DOUBLE, ten mi zatial vyhovuje najviac. Som v mysql zaciatocnik a nemam ani sajny, ktory datovy typ na co sluzi, samozrejme nejake manualy som cital, ale mudrejsi som z toho nebol a nakoniec som si podla toho vybral DOUBLE..
Aky typ by bol vhodnejsi?
no DOUBLE, ale potom nevidim dovod preco by mal dodrbat tu 4.cofru, nedal si to zaokruhlovat len na 3 miesta?
Teoreticky by mohol by problem v tomto zapise?
SELECT SUM(TRUNCATE(data,4)) FROM ???
Neviem presne, čo chceš dosiahnuť, ale očakával by som skôr:
Teda ano, problem je v uvedenom zapise, ale ako to potom urobit, aby mi to najskor spocital a az potom odsekol?
Uz ti napisal los.
Skontroluj ci to mas fakt DOUBLE, FLOAT ma presnost tak na 7 platnych cifier (co priblizne sedi s tvojim problemom), DOUBLE az 15 platnych cifier.
A ake mas data a aky vysledok?
Uz je to dobre, vrela vdaka...
pouzil som ten zapis, co si mi dal... a vysledok je 60.0742
Niekde som sa musel pomylit, lebo uz mi to funguje.. a predtym som to tak skusal.
Este raz vdaka