问题描述
我正在尝试使用以下库:https://github.com/peek-travel/swift-currency
我遇到的问题是我是否有一个变量:
let dollaramount:USD = USD(1.88)
当我这样做时:
Text(dollaramount) // I get errors about "Initializer 'Init(_:)' requires that 'USD' conform to 'StringProtocol'
当我尝试时:
Text("\(dollaramount)") // I get error about "Instance method 'appendINterpolation' requires that 'USD' conform to '_FormatSpecifiable'
我的尝试:
Text("\(dollaramount.localizedString()).") // No errors,but the SwiftUI Text element shows "Optional(USD(1.17))"
显示字符串的正确方法是什么,这样我就不会得到所有的 Optional(USD(1.17)) 而只是像它应该的那样显示“$1.17”?另外,使用 USD 作为此类变量的类型是否正确?我读过 float 和 double 不应该用于货币。如果在进行大量货币处理时美元不是首选类型,请提供正确的替代方案。
解决方法
因为 localizedString()
返回可选值。您可以简单地提供默认值以避免 nil
。
Text("\(dollaramount.localizedString() ?? "My optional").")