[swift-evolution] Followup after in-the-field feedback for SE-0170

Xiaodi Wu xiaodi.wu at gmail.com
Wed Jun 14 15:38:51 CDT 2017


In SE-0170, it states: "It is worth noting that `is` should follow the same
logic as `as?`." For clarity, does rolling back to the initial Swift 3
behavior mean that `NSNumber(value: 0.1) is Float == true`?

On Wed, Jun 14, 2017 at 3:13 PM, Philippe Hausler via swift-evolution <
swift-evolution at swift.org> wrote:

> After implementing the proposal https://github.com/apple/
> swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md we have
> gotten some initial feedback.
>
> It seems that there is definitely a fair amount of confusion and heartache
> for dealing with Float and Double values being bridged.
>
> Specifically the cases like:
>
> NSNumber(value 0.1) as? Float
>
> which with the current implementation will return nil since the Double
> value 0.1 cannot be represented exactly as a Float.
>
> It seems like the overwhelming majority of users know full well that Float
> will result in a loss of precision (hence why they chose that type over
> Double). This means that the floating point bridges for Double, Float, and
> CGFloat should not be the pedantic “exactly” cases but instead infer the
> conversion intent of a lax/approximated version.
>
> So in short: for the betterment of the API ergonomics, the floating point
> types as destinations will be pulled back to their initial Swift 3 behavior.
>
> Additionally to aide appropriate migration to the appropriate
> truncating/exactly initializers the un-labeled, deprecated in Swift 4,
> plain init methods to the numeric types with an NSNumber will now be
> annotated with the suggested replacements.
>
> Thanks for your time and feedback,
> Philippe Hausler
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170614/fd5ddc53/attachment.html>


More information about the swift-evolution mailing list