CreateJsonNumber ( value:Double )

Parameters

value - the number to store, a finite Double

Description

Creates an owned JSON number from a finite Double.

JSON numbers are binary64 Doubles - the right kind for fractional values like a play-time counter in hours, a difficulty multiplier or a best lap time. NaN and infinity are rejected with a RuntimeError: JSON has no way to represent them, and this constructor refuses to smuggle them in as something else.

Serialization is deterministic and round-trippable: the shortest form that reparses to the identical Double, always keeping a decimal point or exponent so the value stays JSON_NUMBER rather than turning into JSON_INTEGER, and preserving -0.0. That determinism means a document containing numbers can be hashed reliably with Sha256Text.

Read the value back with JsonNumber. The returned handle is owned by you: release it with FreeJson. Container setters copy their input, so the usual pattern is create, set, free.

For the full rules, see the Application Data language reference.


See also: JsonNumber, CreateJsonInteger, JsonKind, JsonObjectSet, FreeJson.

Example

; CreateJsonNumber Example
; ------------------------

; JSON numbers are finite binary64 Doubles - ideal for a play-time
; counter measured in hours (NaN and infinity are rejected)
play_time=CreateJsonNumber(12.75D)

Print "Kind is JSON_NUMBER: "+(JsonKind(play_time)=JSON_NUMBER)
Print "JsonNumber returns:  "+JsonNumber(play_time)
Print ""

; Store it in a save-game record to see it serialized
save=CreateJsonObject()
JsonObjectSet save,"play_time_hours",play_time
Print "In a save file: "+JsonStringify(save,0)

FreeJson save
FreeJson play_time

Print ""
Print "Press any key to close the example"
WaitKey

End

Index