on Wed Jun 14 2017, Philippe Hausler <[email protected]> wrote:
> After implementing the proposal > https://github.com/apple/swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md > <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. +1 > 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. Sorry, I don't quite understand what that last paragraph implies. Could you describe what will be deprecated and what will be suggested instead? -- -Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
