<div dir="ltr"><div>Yes, it's been like this for a long time (it's the same in Swift/K).<br><br>Generally I think it's best to not diverge from convention unnecessarily, but the traditional C behaviour is so error prone - you have two related but distinct mathematical operations being denoted with the same symbol.  I've seen the mistake of doing integer division instead of floating point division all the time from beginner programmers and even with some frequency in code from experienced programmers who understand the behaviour but had a mental lapse (myself included). <br>
</div><div><br>Neither implementation does much in the way of automatic type coercion.  In general I have avoided it since there's a high probability of unintended consequences, except when a) there's no chance of information loss and b) they're of the same general category of types, e.g. numeric.<br>
<br>The only differences I could find were:<br></div><div>1. Swift/T always casts integer literals to floats provided they're exactly representable, Swift/K only seems to when they're arguments to operators.<br></div>
<div>2. Swift/K integers are 32-bits, which means that in context where they might be casted, they can always be cast to (double-precision) floats without information loss.  In Swift/T, they're 64-bit, so you can lose precision casting to double - Swift/T won't coerce integers to floats unless it's a literal where it knows the value.<br>
</div><div>3. Swift/K will coerce numeric types to strings in very limited situations (when applying the + operator to a string and a numeric type).  Swift/T doesn't do this.<br><br></div><div>I've created a ticket for the last feature in Swift/T: <a href="https://code.google.com/p/exm-issues/issues/detail?id=733">https://code.google.com/p/exm-issues/issues/detail?id=733</a><br>
<br></div><div>- Tim<br></div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 15, 2014 at 9:39 AM, Justin M Wozniak <span dir="ltr"><<a href="mailto:wozniak@mcs.anl.gov" target="_blank">wozniak@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Both Swifts use / for floating point division and %/ for integer<br>
division, both are in the docs.<br>
<div class="im"><br>
On 08/15/2014 09:33 AM, Michael Wilde wrote:<br>
> A  participant in yesterday's ATPESC tutorial was surprised to see that<br>
> division of two integers yields a float type.<br>
><br>
> We should discuss this, as well as unification of the type coercion<br>
> rules of both Swift/K and Swift/T, and document what the situation is<br>
> (as well as whether we plan to change it).<br>
><br>
> - Mike<br>
><br>
<br>
<br>
--<br>
</div><span class=""><font color="#888888">Justin M Wozniak<br>
</font></span><div class=""><div class="h5"><br>
_______________________________________________<br>
Swift-devel mailing list<br>
<a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
<a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
</div></div></blockquote></div><br></div></div></div>