2015-04-10 14 views
7

Qual è la funzione che rimuove gli zero finali dai doppi?Swift - Rimuovi gli zeri finali da Double

var double = 3.0 
var double2 = 3.10 

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

A * doppia * non ha zeri finali, solo la sua rappresentazione * stringa *. Dai un'occhiata a 'NSNumberFormatter' o' String (format: ...) '. Ci dovrebbero essere già degli esempi per entrambi qui su SO. –

+0

È anche possibile utilizzare numberFormatter come in questo esempio: https://stackoverflow.com/questions/30663996/format-string-with-trailing-zeros-removed-for-x-decimal-places-in-swift/30664610 – wolffan

risposta

24

Si può fare in questo modo, ma restituirà una stringa:

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

Nota che il formato "% g" passi alla notazione scientifica se il numero diventa troppo grande: 'forTailingZero (123456789) == 1.23457e + 08' :) –

+0

Funziona e nasconde gli zeri. Grazie :) –

+0

Grazie a @MartinR per il suggerimento. –

Problemi correlati