Skip to content

Commit 8553058

Browse files
committed
Double .ctor (not active)
1 parent 298f1ac commit 8553058

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Source/Integer_Extensions.swift

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,83 @@ public extension Float {
307307

308308
public 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

Comments
 (0)