将浮点小数的小数部分(右侧部分(转换为整数的最简单方法是什么?
例如:
0.25
转换为25
0.09
转换为9
0.90
转换为90
我已经尝试了几种方法,包括将浮点数转换为字符串并提取分数,但由于某种原因,它省略了任何尾随零。例如,0.90 将转换为字符串为 0.9。
下面是一个示例:
let a = 0.90
let fractionalPart = a.truncatingRemainder(dividingBy: 1.0)
let modifiedFractionalPart = Int(fractionalPart * 100.0)
let string = String(modifiedFractionalPart)
// prints 90
如果您不允许乘以100.0
,这意味着您实际上不必将小数部分限制为小数点后两位,而是需要在.
之后使用整个部分,然后使用以下方法:
let a = 0.09017
let fractionalPart = String(a).components(separatedBy: ".")[1] // "09017"
然后,如果您必须将其转换为Int
只需执行以下操作:
let fractionalPartInt = Int(fractionalPart) // 09017
Apple的Foundation Framework提供了一种方法来做到这一点:
let numberFormatter = NumberFormatter()
numberFormatter.multiplier = 100
print(numberFormatter.string(from: 0.25))
还提供了有关 NumberFormatter 的特定文档
使用数字格式化程序的优点是:
- 更模块化 -- 如果需要更改转换因子,只需更改乘数即可
- 更具表现力 - 在查看旧项目时,拥有自记录代码非常有用