如何在swift3中的十进制字符串末尾添加零
我从Web服务中得到一个特定的双倍数字,比如0.097或0.034。所以如果我得到一个特殊的数字,比如0.56或0.5,我需要在0.56中加一个零,在0.5中加两个零。如何在swift3中执行此操作? 目前我正在做:如何在swift3中的十进制字符串末尾添加零,swift3,nsnumberformatter,Swift3,Nsnumberformatter,我从Web服务中得到一个特定的双倍数字,比如0.097或0.034。所以如果我得到一个特殊的数字,比如0.56或0.5,我需要在0.56中加一个零,在0.5中加两个零。如何在swift3中执行此操作? 目前我正在做: class func appendString(data: Int) -> String { let value = data let formatter = NumberFormatter() formatter.minimumFractio
class func appendString(data: Int) -> String {
let value = data
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 3 // for float
formatter.maximumFractionDigits = 3 // for float
formatter.minimumIntegerDigits = 1
formatter.paddingPosition = .afterPrefix
formatter.paddingCharacter = "0"
return formatter.string(from: NSNumber(floatLiteral: Double(value)))!
}
您知道如何实现上述逻辑吗?问题是您正在以Int类型传递数据输入,因此它将始终忽略分数 见下一示例[Swift 3.1]
func formatNumber(_ number: Double) -> String? {
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 3 // minimum number of fraction digits on right
formatter.maximumFractionDigits = 3 // maximum number of fraction digits on right, or comment for all available
formatter.minimumIntegerDigits = 1 // minimum number of integer digits on left (necessary so that 0.5 don't return .500)
let formattedNumber = formatter.string(from: NSNumber.init(value: number))
return formattedNumber
}
let formattedNumber = formatNumber(0.5)
print(formattedNumber) // Optional("0.500")
问题是您正在以Int类型传递数据输入,因此它将始终忽略分数 见下一示例[Swift 3.1]
func formatNumber(_ number: Double) -> String? {
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 3 // minimum number of fraction digits on right
formatter.maximumFractionDigits = 3 // maximum number of fraction digits on right, or comment for all available
formatter.minimumIntegerDigits = 1 // minimum number of integer digits on left (necessary so that 0.5 don't return .500)
let formattedNumber = formatter.string(from: NSNumber.init(value: number))
return formattedNumber
}
let formattedNumber = formatNumber(0.5)
print(formattedNumber) // Optional("0.500")
只需对代码进行一些小的更改:
func appendString(data: Double) -> String { // changed input type of data
let value = data
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 3 // for float
formatter.maximumFractionDigits = 3 // for float
formatter.minimumIntegerDigits = 1
formatter.paddingPosition = .afterPrefix
formatter.paddingCharacter = "0"
return formatter.string(from: NSNumber(floatLiteral: value))! // here double() is not required as data is already double
}
print(appendString(data: 0.5)) // 0.500
只需对代码进行一些小的更改:
func appendString(data: Double) -> String { // changed input type of data
let value = data
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 3 // for float
formatter.maximumFractionDigits = 3 // for float
formatter.minimumIntegerDigits = 1
formatter.paddingPosition = .afterPrefix
formatter.paddingCharacter = "0"
return formatter.string(from: NSNumber(floatLiteral: value))! // here double() is not required as data is already double
}
print(appendString(data: 0.5)) // 0.500
也许这个:也许这个: