我有一个像这样的双人:
339.09965653839
如何获取点后的第一个数字?
0 // desired result
我试图研究类似的问题,但不幸的是我发现只有将双精度数分成两部分的方法以及这两个双精度数。我想要一个 Int,然后能够将其打印为字符串。
要获得
Int
形式的数字,您可以做一些数学运算:
let someNum = 339.09965653839
let digit = Int((someNum - Double(Int(someNum))) * 10)
当然,根据需要以字符串形式显示
digit
也很简单。
或者,另一种选择:
let number = 123.456
// 1234 % 123 = 4
let digit = Int(number * 10) % Int(number)
将双精度型转换为字符串并获取点后的第一个字符。
let value = 339.09965653839
let valueInString = "\(value)".split(separator: ".")
print(valueInString[1].first ?? "")
Double
扩展由这个伟大的答案:
extension Double {
func getFirstDecimal() -> Int {
Int((self - Double(Int(self))) * 10)
}
}