@@ -307,6 +307,83 @@ public extension Float {
307307
308308public extension Double {
309309
310+ /*init?(_ stringValue: String?) {
311+
312+ var stringValue = stringValue//?.Trim()
313+ if length(stringValue) == 0 {
314+ throw Exception("Invalud Double value")
315+ }
316+
317+ if #defined(COOPER) {
318+ let DecFormat = java.text.DecimalFormat.getInstance(java.util.Locale.Default) as! java.text.DecimalFormat
319+ let Position = java.text.ParsePosition(0)
320+ stringValue = stringValue!.Trim().toUpperCase()
321+ // E+ is not accepted, just E or E-
322+ stringValue = stringValue!.Replace("E+", "E")
323+ if #defined(ANDROID) {
324+ if stringValue.Length > 1 {
325+ let DecimalIndex = stringValue.IndexOf(".")
326+ if DecimalIndex = -1 {
327+ DecimalIndex = stringValue.Length
328+ }
329+ stringValue = stringValue[0] + stringValue.Substring(1, DecimalIndex - 1).Replace(",", "") + stringValue.Substring(DecimalIndex)
330+ }
331+ }
332+
333+ if stringValue!.StartsWith("+") {
334+ stringValue = stringValue!.Substring(1)
335+ }
336+ let result = DecFormat.parse(stringValue, Position)?.doubleValue()
337+ if Position.Index < stringValue!.Length() {
338+ throw Exception("Invalud Double value")
339+ }
340+ if Double.isInfinite(result) || Double.isNaN(result) {
341+ throw Exception("Invalud Double value")
342+ }
343+ return result
344+ } else if #defined(TOFFEE) {
345+ let Number = TryParseNumber(stringValue, Foundation.NSLocale.systemLocale)
346+ if Number == nil {
347+ throw Exception("Invalud Double value")
348+ }
349+ return Number?.doubleValue
350+ } else if #defined(ECHOES) {
351+ let result: Double
352+ if !Double.TryParse(stringValue, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, &result) {
353+ throw Exception("Invalud Double value")
354+ }
355+ return valueOrDefault(result)
356+ } else if #defined(ISLAND) {
357+ let result: Double
358+ if !Double.TryParse(stringValue, RemObjects.Elements.System.Locale.Invariant, &result) {
359+ throw Exception("Invalud Double value")
360+ }
361+ return valueOrDefault(result)
362+ }
363+ }*/
364+
365+ #if TOFFEE
366+ private static func TryParseNumber( _ stringValue: String ? , _ aLocale: Foundation . NSLocale ? = nil ) -> NSNumber ? {
367+
368+ var stringValue = stringValue//?.Trim()
369+ if length ( stringValue) == 0 {
370+ return nil
371+ }
372+
373+ let Formatter = NSNumberFormatter ( )
374+ Formatter . numberStyle = NSNumberFormatterStyle . NSNumberFormatterDecimalStyle
375+ Formatter . locale = aLocale
376+ if ( stringValue as! NSString ) . rangeOfCharacterFromSet ( NSCharacterSet . whitespaceAndNewlineCharacterSet) . location != NSNotFound {
377+ return nil
378+ }
379+ if stringValue!. hasPrefix ( " + " ) && !stringValue!. contains ( " - " ) {
380+ stringValue = stringValue!. substring ( fromIndex: 1 )
381+ return Formatter . numberFromString ( stringValue)
382+ }
383+ return nil
384+ }
385+ #endif
386+
310387 // Strideable
311388
312389 func advancedBy( _ n: Double ) -> Double {
0 commit comments