前提・実現したいこと
iOS用の電卓アプリを作成しています。
桁数区切りのカンマを表示させるために関数を作成しているのですが、エラーでうまく動作しません。
こちらの解決方法についてご教示いただければ幸いです。
発生している問題・エラーメッセージ
まず、桁数区切りのカンマを挿入するための大元の関数がこちらです。
func decimalStyle(priceValue: String) -> String { let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.groupingSeparator = "," formatter.groupingSize = 3 if let priceValue = Double(priceValue) { return formatter.string(from: NSNumber(value: priceValue)) ?? "(priceValue)" } return priceValue }
しかし、この状態だと小数点第4位以下になると勝手に四捨五入されてしまうため、型をNSDecimalNumberに変えたいのですが、
func decimalStyle(priceValue: String) -> String { let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.groupingSeparator = "," formatter.groupingSize = 3 if let priceValue = NSDecimalNumber(pointer: priceValue) as Optional { return formatter.string(from: NSDecimalNumber(value: priceValue)) ?? "(priceValue)" /*エラー内容 Cannot invoke initializer for type 'NSDecimalNumber' with an argument list of type '(value: NSDecimalNumber)' */以上 } return priceValue }
上記のエラーが表示されてしまいました。
内容の意味するところは理解できるのですが、具体的にどのようにすればエラーが解消できるのかの見当がついておりません。
こちらの解消方法についてご教示いただければ幸いです。
補足情報
こちらの質問で現在の具体的な状況などについても記載しております。
あなたの回答
tips
プレビュー