<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Currently, one has to deal with explicit conversion between numerical types,</div><div class="">which in many cases is unnecessary and costing time to code </div><div class="">for things that are quite obvious,</div><div class="">and cluttering the source, making it less readable.</div><div class=""><br class=""></div><div class="">Especially dealing all the time with often unavoidable intermixing </div><div class="">of floating point types CGFloat, Float, and Double </div><div class="">is really very annoying. </div><div class=""><br class=""></div><div class="">Conversion beween floating point types is always harmless as </div><div class="">floating point types are essentially the same. </div><div class="">They differ only in precision.</div><div class=""><div class=""><br class=""></div><div class="">Therefore, I would recommend allowing the following implicit type conversions:</div><div class=""><br class=""></div><div class="">-between all floating point types e.g. Double, Float, CGFloat </div><div class=""><br class=""></div><div class="">-from any integer type to floating point types</div><div class=""><br class=""></div><div class="">-Also, personally, I wouldn’t mind assigning from a float to a (signed) integer</div><div class="">because I know what I am doing: that the fraction is lost </div><div class="">and that assigning a too large float to an Integer would then cause </div><div class="">a run time error, which I can try/catch, of course. </div><div class=""><br class=""></div><div class="">-from unsigned integer to signed integer </div><div class="">(nothing is lost here, but overflow should cause a run time error) </div><div class=""><br class=""></div><div class="">but no implicit conversion for:</div><div class="">- from integer to unsigned integer (loosing sign here)</div><div class="">- from a larger integer type to a smaller one e.g. Int32 <- Int64 (truncation) </div><div class=""><br class=""></div><div class="">Note however, that the compiler should issue warnings </div><div class="">when you do implicit conversions, but these warnings </div><div class="">are for most programmers of the “Yeah I know, don’t bug me.”</div></div><div class="">type, so one should be able to switch off these type of warnings.</div><div class=""><br class=""></div><div class="">Even a programmer with little experience simply knows </div><div class="">that bringing integers into the floating point domain </div><div class="">causes precision loss. </div><div class="">He/she also knows that assigning a Double to a smaller floating</div><div class="">point type also cause precision loss. </div><div class="">the reverse is not true.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Very much interested in your opinion!</div><div class=""><br class=""></div><div class="">----</div><div class="">N.B. the above does not yet include </div><div class="">the fixed decimal numerical type as this type is not yet</div><div class="">available in Swift. However, it should be implemented </div><div class="">*as soon as possible* because the fixed decimal type </div><div class="">is really needed for applications working with financial data!</div><div class="">E.g. </div><div class="">var depositPromille: Decimal(10,3)</div><div class="">typealias Money = Decimal(20,2) </div><div class=""> </div><div class="">For more info on how this could be implemented</div><div class="">in Swift. please read a PL/1 manual, ( i grew up in this world)</div><div class="">like this one: </div><div class=""><br class=""></div><div class=""><a href="http://www.ibm.com/support/knowledgecenter/#!/SSY2V3_4.3.0/com.ibm.entpli.doc_4.3/lr/preface_plugin.htm" class="">http://www.ibm.com/support/knowledgecenter/#!/SSY2V3_4.3.0/com.ibm.entpli.doc_4.3/lr/preface_plugin.htm</a></div><div class=""><br class=""></div><div class="">especially under sub-topic “Data elements” </div><div class=""><br class=""></div><div class=""><div class="">(however, don’t take everything for granted, PL/1 is still a very young language :o) </div></div><div class="">Unfortunately OOP never made it into PL/1 because with it, it would be nearly perfect.)</div><div class=""><br class=""></div><div class="">Should I make a new swift-evolution topic for fixed decimal?</div><div class=""><br class=""></div><div class="">Kind Regards</div><div class="">TedvG</div><div class=""><br class=""></div></body></html>