如何在Swift中将字符串转换为Double而不丢失精度

8 浏览
0 Comments

如何在Swift中将字符串转换为Double而不丢失精度

如何将字符串转换为双精度(double)或浮点数(float)而不丢失精度?

例如:

let stringNumber = "12.00"

0
0 Comments

问题原因:在Swift中,将字符串转换为浮点数时,可能会丢失精度。

解决方法:可以使用NSString的format方法来保持精度。通过设置格式化字符串,可以将字符串转换为指定精度的浮点数。

具体代码如下:

let valueString = "3.14159265359"

let value = Double(valueString)

if let unwrappedValue = value {

let formattedValue = NSString(format: "%.2f", unwrappedValue)

print(formattedValue)

}

以上代码中,首先将字符串"3.14159265359"转换为Double类型的值。然后,通过使用NSString的format方法,将该值格式化为保留2位小数的字符串。最后,打印出格式化后的字符串"3.14"。

感谢以上代码中的扩展函数,它允许我们在Double类型上直接调用format方法,并将其作为字符串返回。这个扩展函数的定义如下:

extension Double {

func format(f: String) -> String {

return NSString(format: "%(f)f", self) as String

}

}

使用这个扩展函数,我们可以更方便地将Double类型的值格式化为指定精度的字符串。

希望以上解决方法对你有所帮助!

0