swift 中的四舍五入数字
Rounding numbers in swift
在 Swift 中,我需要能够根据值对数字进行舍入。如果一个数字是整数,后面只有“.0”,我需要把它转换成一个整数,如果这个数字的小数点后的数字大于 2 位,我需要把它四舍五入到 2 位。
例如:
1.369352 --> 1.37
7.75 --> 7.75
2.0 --> 2
如何检查我的数字并根据这些规则四舍五入?
这样的应该不错吧?
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
此函数returns所需结果的字符串。
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"
在 Swift 中,我需要能够根据值对数字进行舍入。如果一个数字是整数,后面只有“.0”,我需要把它转换成一个整数,如果这个数字的小数点后的数字大于 2 位,我需要把它四舍五入到 2 位。
例如:
1.369352 --> 1.37
7.75 --> 7.75
2.0 --> 2
如何检查我的数字并根据这些规则四舍五入?
这样的应该不错吧?
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
此函数returns所需结果的字符串。
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"