1.0 becomes 1, -0.0
becomes 0, and 1e-7 remains in exponent notation.
D1 additionally rejects integer magnitudes above 9,007,199,254,740,991. The
restriction also applies to integral floating-point values: 9007199254740992,
9007199254740992.0, and 1e20 are all rejected. Use a JSON string for identifiers,
large integers, or decimal values requiring exact precision. Accepted fractional
numbers use binary64 semantics; their decimal spelling can round during parsing.
Duplicate decoded object keys, NaN/infinity, malformed UTF-8, unpaired surrogates,
and nesting deeper than 32 levels are rejected. These rules apply to the complete
request, including nested context.
Charges round up once per request. At a synthetic tariff of
500,000 nano-USD per million tokens, three tokens cost two nano-USD. Rounding each
token separately would incorrectly charge three. Money is returned with exactly
nine decimal places; sub-nano-USD precision and negative purchase amounts are
rejected.
This describes serialization and rounding. Tokenizer counts and model latency
depend on the active release.