2017-07-18 77 views
-1

将浮点数小数部分(右部分)转换为整数整数的最简单方法是什么?如何在Swift中将小数部分转换为整数

例如:

0.25转换为25

0.09转换为9

0.90转换为90

我尝试了多种方法,包括浮点数转换为字符串,并提取分数,但由于某种原因,它会留下任何尾随零。例如0.90将转换为0.9的字符串。

+0

您是否将点数限制为两位数?如果不是,你怎么能从'0.90'和'0.900'告诉'0.9'? – dasblinkenlight

+0

乘以100然后转换为Int。 –

回答

1

下面是一个例子:

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 
0

苹果Foundation Framework提供了一种方法来做到这一点:

let numberFormatter = NumberFormatter() 
numberFormatter.multiplier = 100 
print(numberFormatter.string(from: 0.25)) 

具体文档的NumberFormatter is also available

使用的NumberFormatter的优点是,它是:

  • 更加模块化 - 如果您需要更改转换因子,只需更改乘数
  • Mo重新表达 - 具有自我记录代码在查看旧项目时非常有用
相关问题