[swift-evolution] FloatingPoint does not conform to ExpressibleByFloatLiteral

Rick Mann rmann at latencyzero.com
Tue Jan 16 17:39:26 CST 2018



> On Jan 16, 2018, at 15:32 , Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
> 
> On Jan 16, 2018, at 14:30 , Nevin Brackett-Rozinsky via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> That only works for numbers which don’t overflow the integer literals though. If we want a really large or small value then we have to split it in pieces:
>> 
>> func moles <T: FloatingPoint> (particles: T) -> T {
>>     let avogadroNumber: T = 6_022_140_857 * 100_000_000_000_000
>>     return particles / avogadroNumber
>> }
>> 
>> It would be much nicer to write “let avogadroNumber: T = 6.022140857e23”.
>> 
> 
> You could write:
> 
> func moles<T : FloatingPoint & LosslessStringConvertible>(particles: T) -> T {
>   let N_A = T("6.02214085774e+23")!
>   return particles / N_A
> }

You're not seriously proposing this alternative, are you? I'm with Nevin on this: “let avogadroNumber: T = 6.022140857e23”.


-- 
Rick Mann
rmann at latencyzero.com




More information about the swift-evolution mailing list