🔡
SwiftでDecimal型の整数をカンマ区切りの文字列にする
もともとDecimal型ということがあまりないかもですが。
一旦NSDecimalNumber
にしてからInt
にしてString.localizedStringWithFormat(,)
に渡してやるとできます。
let intValue = Decimal(1_234_567)
String.localizedStringWithFormat("%d", NSDecimalNumber(decimal: intValue).intValue)
// NSDecimalNumberにキャストするだけでもいける
String.localizedStringWithFormat("%d", (intValue as NSDecimalNumber).intValue)
// "1,234,567"
// "1,234,567"
使いやすいようにextension化しておく
extension Decimal {
var formattedAsIntValue: String {
String.localizedStringWithFormat("%d", (self as NSDecimalNumber).intValue)
}
}
奥が深そうなのでとりあえずこれだけ。詳細は参考資料を確認してください。
環境
Xcode 14.3.1
Swift 5.8.1
Discussion