or just units of measure a more general solution than what you're suggesting, implemented by languages like F#
https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
I think there are some other things like fixed-point rather than floating-point decimals for storing/manipulating currency. IIRC, the number 0.1 cannot be precisely represented with floating point system, but that just may be an old wives tale at this point.