String.Chars.to_string/1 is only implemented by default for types that can 
be represented with unambiguous precision… with the exception of Float. The 
ambiguity with regards to representing tuples and maps (and by extension 
structs) would seem to be the primary reason for omitting a default 
implementation for those types. The same could be said of floats. A 
programmer attempting to interpolate 1_000.0 into a string might be quite 
surprised to discover that the string representation is "1.0e3". They might 
be even more surprised to discover that interpolating 
12_123_123_123_123_123_123.0 will be rounded in its representation as 
"1.2123123123123122e19". The protocol implementation must make formatting 
assumptions with regards to precision when it comes to floats. I would 
recommend the eventual deprecation of the default String.Chars implementation 
for Float.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/e5d26d6d-9a57-444d-bca2-7a17bce4c79f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to