在Swift(2.2)

时间:2016-10-13 12:35:46

标签: swift

如何将磅转换为磅小数?

例如,如果用户输入 1.8磅,我希望能够将其转换为 1.5磅,以便我可以进行一些计算。

以下代码有两个问题。

1-仅当用户输入少于10(例如1.9)盎司时,它才起作用,因为我将盎司乘以10。

2-它只返回十进制盎司,它不返回整数(磅)。

func poundsToDecimals(pounds:Double)->Double{
    let ounces = Double(pounds % 1)
    let decimals = ounces / 16 * 10
    return decimals
}

print(poundsToDecimals(1.4)) //prints... 0.25

1 个答案:

答案 0 :(得分:2)

要解决您的第一个问题,请尝试将其转换为字符串,然后将其拆分为:

func poundsToDecimals(pounds: Double) -> Double {
    let numberAsString = String(pounds)
    var numbers = numberAsString.components(separatedBy: ["."])

    let seperatedPounds = Double(numbers[0])!
    let ounces = Double(numbers[1])!
    let decimals = ounces / 16 * 10

    return decimals
}

请你进一步说明你的第二个问题。如果你想返回多于一个值,你可以这样做。

func poundsToDecimals(pounds: Double) -> (Double, Double) {
    let numberAsString = String(pounds)
    var numbers = numberAsString.components(separatedBy: ["."])

    let seperatedPounds = Double(numbers[0])!
    let ounces = Double(numbers[1])!
    let decimals = ounces / 16 * 10

    return (decimals, seperatedPounds)
}

希望有所帮助