字符串到十进制swift

R. *_*gan 3 string decimal swift

我正在使用userdefaults来保存未知长度的十进制值(即51000000000).Userdefaults不允许保存长十进制数,因此我将该值转换为字符串并保存.然后我想重新加载数字但是我一直无法找到将字符串值转换为小数的方法.我该怎么做呢?

编辑:

将值设置为userdefaults的代码:

let savedValues = UserDefaults.standard
savedValues.setValue(String(describing: buildingConstants.jitterClickConstantCost), forKey:"jitterClickCost")

struct buildingConstants {
     static var jitterClickConstantCost = Decimal()
}
Run Code Online (Sandbox Code Playgroud)

zom*_*bie 10

您可以使用字符串参数尝试Decimal的默认初始值设定项

这是一个例子

let decimal: Decimal = 51000000000
let str = String(describing: decimal)

let savedValues = UserDefaults.standard

savedValues.set(str, forKey:"jitterClickCost")
savedValues.synchronize()

let value = savedValues.string(forKey: "jitterClickCost") ?? "0"

let result = Decimal(string: value)
Run Code Online (Sandbox Code Playgroud)