我有功能:
func toString(number: Decimal, scale: Int) -> String {
return number
}
我需要一个函数,该函数在“ number”参数中-将接收一个Decimal数字,将其舍入到小数位数(scale参数),然后在String中返回结果。 有人知道怎么做吗?
答案 0 :(得分:0)
func toString(number: Double, scale: Int)-> String
{
var tempNum = number*pow(10.0,Double(scale))
tempNum.round(.towardZero)
return "\(tempNum*pow(10,(-1)*Double(scale)))"
}
答案 1 :(得分:0)
extension decimal
{
func roundTo(places:Int) -> String
{
let divisor = pow(10.0, Double(places))
return "\((self * divisor).rounded() / divisor)"
}
}
我认为此扩展程序可以为您提供帮助。我几乎使用每个项目。
答案 2 :(得分:0)
let numberFormatter = NumberFormatter()
numberFormatter.minimumIntegerDigits = 1
numberFormatter.minimumFractionDigits = 0
func toString(number: NSNumber, scale: Int) -> String {
numberFormatter.maximumFractionDigits = scale
return numberFormatter.string(from: number) ?? ""
}
示例:
toString(number: NSNumber(value: 1234.5678), scale: 1) // ANSWER = 1234.6
toString(number: NSNumber(value: 1234.5678), scale: 2) // ANSWER = 1234.57
toString(number: NSNumber(value: 1234.5678), scale: 3) // ANSWER = 1234.568
toString(number: NSNumber(value: 1234.5678), scale: 4) // ANSWER = 1234.5678
toString(number: NSNumber(value: 1234.5678), scale: 5) // ANSWER = 1234.5678