Float在Swift 3中失去了精度

时间:2017-05-15 06:13:33

标签: ios swift3 precision

我在swift 3中的Float变量中存储了一些值。但是当我实际使用变量中的这个值时,它会失去精度。我在操场上试了一下。它给出了我的最终输出: 152.399994而不是152.4(或152.40)

请考虑以下代码:

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)

如果有人遇到此问题,请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

Float变量始终使用预定义精度返回标准浮点值,您必须手动更改要显示的精度。用下面的方法更改您的heightInCentimeters方法,您将获得所需的优惠。

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))!
}