[Borland] Currency veld en aantal decimalen achter komma.

Pagina: 1
Acties:

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 18:42

hneel

denkt er het zijne van

Topicstarter
In een database applicatie heb ik een currency veld. In de TDBGrid en TDBEdit zie je die perfect met 2 decimalen achter de komma staan.

Maar als ik het volgende doe, krijg ik 4 decimalen achter de komma.

C++:
1
AnsiString bla = Query->FieldByName("Price")->AsCurrency;


(Met AsFloat of AsString krijg ik uiteraard nog veel meer decimalen achter de komma)

Hoe krijg ik dit nu goed? Ik wil er gewoon 2! (waarom verzint Borland uberhaupt zoiets?)

Verwijderd

Uit de online help:
"Currency is a fixed-point data type that minimizes rounding errors in monetary calculations. It is stored as a scaled 64-bit integer with the four least-significant digits implicitly representing decimal places."

Logisch dus dat je bij AsCurrency 4 decimalen krijgt. :)
In Delphi zou je dat met FloatToStrF(Query.FieldByName("Price").AsCurrency, ffFixed, 15, 2) prima kunnen formatteren naar 2 cijfers achter de komma, en ik neem aan dat dat ook voor BCB geldt.
Is nog netter ook, want AsCurrency geeft een Currency terug, en geen AnsiString...

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 18:42

hneel

denkt er het zijne van

Topicstarter
Ik bedenk me dat ik ook het veld zou kunnen weergeven in een onzichtbaar TDBEdit en dan daar de Text property van kan kopieeren. Verdient geen schoonheidsprijs...

Ik zal morgen jouw oplossing ook eens bekijken. Die funktie kende ik nog niet.

Edit:
Die functie werkt perfect. Rond ook op de juiste manier af enzo...

[ Voor 14% gewijzigd door hneel op 27-07-2006 09:10 ]