2017-05-15 2 views
1

Ich speichere etwas Wert in Float-Variable in swift 3. Aber wenn ich diesen Wert tatsächlich von der Variablen verwende, verliert es Genauigkeit. Ich habe es auf dem Spielplatz versucht. Es gibt mir die endgültige Ausgabe als: 152,399994 statt 152,4 (oder 152,40)Float verliert Präzision in Swift 3

Bitte Code unten betrachten:

let feetToInchMultiplier: Float = 12 
    let inchToCentimeterMultiplier: Float = 2.54 

func heightInCentimeters(_ feet: Float, inches: Float) -> Float { 
    //Convert in Centemeters 
    let totalInches: Float = (feet * feetToInchMultiplier) + inches 
    let centimeters: Float = totalInches * inchToCentimeterMultiplier 
    return centimeters 
} 

heightInCentimeters(5, inches: 0) 

Wenn jemand dieses Problem vor mir bitte helfen. Danke im Voraus.

Antwort

0

Gleitkommavariante gibt immer den Standard-Gleitkommawert mit vordefinierten Genauigkeiten zurück Sie müssen die Genauigkeit, die Sie anzeigen möchten, manuell ändern. Ändern Sie Ihre heightInCentimeters Methode mit unten und Sie werden erwünschten Ausgang erhalten.

func heightInCentimeters(_ feet: Float, inches: Float) -> Float { 
    //Convert in Centemeters 
    let totalInches: Float = (feet * feetToInchMultiplier) + inches 
    let centimeters: Float = totalInches * inchToCentimeterMultiplier 

    return Float(String(format: "%.2f",centimeters))! 
}