快速舍入数字

时间:2015-06-29 22:10:12

标签: swift rounding

在Swift中,我需要能够根据数值对数字进行舍入。如果一个数字是完整的,那就是" .0"在它之后,我需要将它转换为整数,如果数字后面的数字大于2位数,我需要将其四舍五入。

例如:

1.369352 --> 1.37
7.75     --> 7.75  
2.0      --> 2  

如何根据这些规则检查我的号码并围绕它们?

2 个答案:

答案 0 :(得分:5)

这样的事情应该是好的吗?

func formatNumber (number: Double) -> String? {

    let formatter = NSNumberFormatter()
    formatter.maximumFractionDigits = 2

    let formattedNumberString = formatter.stringFromNumber(number)
    return formattedNumberString?.stringByReplacingOccurrencesOfString(".00", withString: "")

}

formatNumber(3.25) // 3.25
formatNumber(3.00) // 3
formatNumber(3.25678) // 3.26

答案 1 :(得分:1)

此函数返回所需结果的字符串。

func roundnumber(roundinput:Double) ->String{
var roundoutputint=0
var roundoutputfloat=0.0
if (roundinput - floor(roundinput) < 0.00001) { // 0.000001 can be changed depending on the level of precision you need
    //integer

    roundoutputint = Int(round(roundinput))
    return String(roundoutputint)
}
else {
    //not integer
    //roundoutputfloat=round(10 * roundinput) / 10
    return String(format:"%.2f",roundinput)
}
}

例如:

roundnumber(1.3693434) //returns "1.37"
roundnumber(7.75)     //returns "7.75"
roundnumber(2.0)      // returns "2"