SwiftUI中如何将带逗号的十进制数转换为小数(Point)?

Posted

技术标签:

【中文标题】SwiftUI中如何将带逗号的十进制数转换为小数(Point)?【英文标题】:How can a decimal number with a comma be converted in a decimal (Point) in SwiftUI? 【发布时间】:2020-03-10 19:53:14 【问题描述】:

如何格式化插入逗号的文本字段,以便插入的十进制值示例 10,05$ 可以转换为小数(点)10.05$?

private static let Intrest = "Intrest"
private static let Repayment = "Repayment"



var loan: Double 
    let intrest = Double (Intrest)
    let repayment = Double (Repayment)

    let Loan = Intrest + Repayment

    return Loan




var body: some View 
     VStack
        HStack
           Text ("Repayment %")
           Spacer()
           TextField("2 %", text: $Repayment)
                .keyboardType(.decimalPad)
            
      VStack
         HStack
            Text ("Loan / month")
            
            TextField("2 %", text: $Loan)
                .keyboardType(.decimalPad)
            

之所以会出现此问题,是因为在许多国家/地区大多使用逗号,这会破坏计算。

谢谢

【问题讨论】:

【参考方案1】:

您需要确保将字符串转换为带点的双精度而不是逗号。

这个应该有帮助。 Swift playground - How to convert a string with comma to a string with decimal

【讨论】:

【参考方案2】:

我建议您阅读Textfield not updating 并使用带有双后存储的自定义字符串绑定。

具体阅读那里的更新:-)

自定义字符串绑定与后端双数的完整示例用法在这里https://gist.github.com/op183/24607b6309f7d1ea8f3aaf02d17e4ed3

【讨论】:

以上是关于SwiftUI中如何将带逗号的十进制数转换为小数(Point)?的主要内容,如果未能解决你的问题,请参考以下文章

vc++如何将带小数点的字符串转成数字

Javascript如何将十进制数转换为具有特定小数位数的字符串

将十进制转换为小数点后两个零的字符串,和逗号? C# [重复]

如何将数值转化为二进制数?

DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?

将带逗号的字符串转换为数组