2015-04-10 12 views
7

Was ist die Funktion, die nachfolgende Nullen von Double entfernt?Swift - Nachgestellte Nullen von Double entfernen

var double = 3.0 
var double2 = 3.10 

println(func(double)) // 3 
println(func(double2)) // 3.1 
+6

A * double * hat keine Nullen, nur * seine * String-Darstellung. Sieh dir 'NSNumberFormatter' oder' String (Format: ...) 'an. Es sollte bereits einige Beispiele für beide hier auf SO geben. –

+0

Sie könnten auch numberFormatter wie in diesem Beispiel verwenden: https://stackoverflow.com/questions/30663996/format-string-with-trailing-zeros-removed-for-x-decimal-places-in-swift/30664610 – wolffan

Antwort

24

Sie können es auf diese Weise tun, aber es wird eine Zeichenfolge zurück:

var double = 3.0 
var double2 = 3.10 

func forTrailingZero(temp: Double) -> String { 
    var tempVar = String(format: "%g", temp) 
    return tempVar 
} 

forTrailingZero(double) //3 
forTrailingZero(double2) //3.1 
+5

Hinweis dass das "% g" -Format in die wissenschaftliche Notation wechselt, wenn die Zahl zu groß wird: 'forTailingZero (123456789) == 1.23457e + 08' :) –

+0

Es funktioniert und verbirgt die Nullen. Vielen Dank :) –

+0

Dank @MartinR für Vorschlag. –