我想数小数点右边的数字,而只有零
**输入:**1.00000000
**期望输出:**8
验证码:
let decimalDigits = String(totalValue).split(separator: ".").last?.count ?? 0
extension Double {
func decimalCount() -> Int {
if self == Double(Int(self)) {
return 0
}
let integerString = String(Int(self))
let doubleString = String(Double(self))
let decimalCount = doubleString.count - integerString.count - 1
return decimalCount
}
}
密码:
> if to right of decimal all zeros
> count number of zeros
如果小数点右边都是零,我该如何解释小数点的计数?
在上面的代码中,我可以说明小数的数量。但如果小数点都是零,我就不能说明小数点的个数了。
1条答案
按热度按时间djmepvbi1#
您所描述的输入是一个String,而不是一个Double(或任何类型的数字)。数字是由它们的值定义的,而不是它们的数字表示。所以任何解决方案都适用于String。
假设你已经修剪了字符串,并且知道它只有数字,下面的方法会起作用:
如果你需要它来处理Double或其他类型的数字,那么你必须应用格式化程序将其转换为String,此时你需要决定有多少位数。数字不携带任何关于用于创建它们的数字的信息。(他们怎么可能?“8.00 / 2.0”的结果中有多少个尾随零?)