Databáze > Obecné

zobrazeni poctu desetinnych mist v dbgridu

(1/2) > >>

rob.:
Ahoj, mam v MSSQL tabulku, jedno z poli uklada cenu jako desetinne cislo (v deklaraci tabulky jako typ real), tabulku zobrazuji pomoci dbgridu, pomoci Adoquery a insert vlozim hodnotu napr. 1,21 Dbgrid mi hodnotu zobrazi jako 1,21000003814697.
Vygoogloval jsem ze pomoci TFloatField(mojetabulka.FieldByName('cena')).DisplayFormat := '0.00'; si hodnotu zobrazim spravne jako 1,21 ale tim zobrazim vsechny hodnoty ve sloupci cena na 2 des mista i ta co jsou treba na 3 apod. Chtel bych hodnoty zobrazit na skutecny pocet desetinnych mist jaky byl zadan pri vlozeni, tj. kdyz zadam 8,3 bude tam 8,3, kdyz 6,125 bude se mi v dbgridu zobrazovat 6,125. Jak toho dosahnout ?

dekuji za radu.

pepak:
Leda tak, že místo číselného pole použiješ string. Jinak počítač buď vůbec neví, kolik desetinných míst jsi použil (float), nebo ví, že vždycky použiješ předem zadaný počet desetinných míst (BCD).

rob.:
diky, uz jsem na to prisel, staci pouzit
TFloatField(prematerialtable.FieldByName('cena')).DisplayFormat := '0.##';
Akorat si rikam jestli real je vhodny datovy typ pro ukladani ceny v databazi MSSQL, jestli nebude lepsi decimal na 2 desetinna mista. Pak by to i mohlo zobrazovat normalne.

rob.:
bez nutnosti nejakeho formatovani

Stanislav Hruška:
Nemá MSSQL typ currency? Ale ináč sa používa formát desatinného čísla na 4 desatinné čísla.
Formát zobrazenia hodnôt si osobne nastavujem už DataSet-e.

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi