this post was submitted on 04 Jul 2025
134 points (98.6% liked)

Programmer Humor

24736 readers
1761 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] BodilessGaze@sh.itjust.works 4 points 19 hours ago (1 children)

That works until you realize your calculations are all wrong due to floating point inaccuracies. YAML doesn't require any level of precision for floats, so different parsers on a document may give you different results.

[–] deegeese@sopuli.xyz 10 points 19 hours ago (1 children)

What text based serialization formats do enforce numeric precision?

AFAIK it’s always left up to the writer (serializer)

[–] BodilessGaze@sh.itjust.works 4 points 18 hours ago* (last edited 18 hours ago)

Cuelang: https://cuelang.org/docs/reference/spec/#numeric-values

Implementation restriction: although numeric values have arbitrary precision in the language, implementations may implement them using an internal representation with limited precision. That said, every implementation must:

  • Represent integer values with at least 256 bits.
  • Represent floating-point values with a mantissa of at least 256 bits and a signed binary exponent of at least 16 bits.
  • Give an error if unable to represent an integer value precisely.
  • Give an error if unable to represent a floating-point value due to overflow.
  • Round to the nearest representable value if unable to represent a floating-point value due to limits on precision. These requirements apply to the result of any expression except for builtin functions, for which an unusual loss of precision must be explicitly documented.