Color scheme: Dark
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Office JSON » how-to » Branje natančnih zneskov in velikih identifikatorjev

Branje natančnih zneskov in velikih identifikatorjev

Denarne zneske preberete brez zaokroževanja s plavajočo vejico, identifikatorje pa z več števkami, kot jih lahko hrani Long ali Double.

Pregled rešitve

Knjižnica vsako število hrani kot besedilo, s katerim je bilo prebrano. GetCurrency in GetDecimal to besedilo pretvorita neposredno, ne prek Double (Currency nato zaokroži na štiri decimalna mesta, Decimal na 28–29 veljavnih števk); Value za cela števila zunaj obsega Long vrne Decimal. Vrednost Double dajo samo GetDouble ter Value za števila z decimalnim delom ali eksponentom ali zunaj obsega Decimal.

Izvedba

Dim doc As New JDoc
doc.LoadJson "{""total"": 1234567.89, ""orderId"": 9007199254740993}"
 
Dim total As Currency
total = doc.GetCurrency("$.total")                ' 1234567.89, exact
 
Debug.Print doc.GetDecimal("$.orderId")           ' 9007199254740993
Debug.Print TypeName(doc.Root("orderId").Value)   ' Decimal
 
' Write an amount exactly
doc.SetValue "$.total", CCur(99.95)

Opombe

  • GetLong število z decimalnim delom zavrne (jeTypeMismatch), namesto da bi ga okrnil, prav tako število zunaj obsega Long.
  • GetCurrency več kot štiri decimalna mesta zaokroži na štiri (bančno zaokroževanje, kot ga uporablja CCur); za več decimalnih mest uporabite GetDecimal.
  • Decimal hrani 28 do 29 veljavnih števk; število z več števkami se brez napake zaokroži na to natančnost, absolutna vrednost pod 1E-28 pa postane 0. Samo besedilo JSON se nikoli ne spremeni: GetString vrne vse števke. Take vrednosti shranjujte v besedilno ali decimalno polje tabele, ne v polje tipa Double. Vsa pravila in omejitve: Vrednosti in omejitve.
  • Števila v nizih se preberejo, če je njihovo besedilo brez presledkov na začetku in koncu število JSON: "42" in " 4.2 " se prebereta; "007", "+5", ".5" in "12,5" sprožijo jeTypeMismatch – take kode berite z GetString.

Sorodne teme

sl/wiki/msaccess/json/how-to/read-exact-numbers.txt · Last modified: by Wolfgang van der Stille