文字列をintに変換したいと考えています。私の問題は、今ではint値を取得することですが、カンマの後に数値を表示することはありません。文字列が-0,23の場合、intよりも0.が返されます。これを修正できますか?助けてください。あなたはfloatを使用する必要がIntはコンマの後に数字を表示しません
let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue
文字列をintに変換したいと考えています。私の問題は、今ではint値を取得することですが、カンマの後に数値を表示することはありません。文字列が-0,23の場合、intよりも0.が返されます。これを修正できますか?助けてください。あなたはfloatを使用する必要がIntはコンマの後に数字を表示しません
let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue
、整数はおそらく、あなたのロケール用に設定されているためNumberFormatter
を、使用する必要がありますコンマ https://developer.apple.com/documentation/swift/float
後に数字を取ることはありません。米国では、小数点記号はピリオドです。 ( "。")コンマは区切り文字と見なされます。
さらに、小数点区切り記号がカンマのロケールであると仮定すると、整数に変換すると小数点記号の後の部分が切り捨てられます。
次のコードのようなコードが動作するはずです:
var str = "-0,23"
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.locale = Locale(identifier: "fr_FR")
let aVal = formatter.number(from: str)?.doubleValue
(フランスは、小数点区切り文字としてコンマを使用していますので、私は、ロケールとしてフランスのフランス語を使用しています。)あなたが考える必要が
注意ロケールをどのように扱うかを決めるために、数字の文字列がどこから来たのかを注意深く調べてください。これらがユーザー入力の文字列の場合は、デバイスのデフォルトのロケールで数値フォーマッタを使用してください。そうすれば、ヨーロッパのユーザーはカンマを小数点区切り記号として使用でき、米国のユーザーはピリオドを小数点記号として使用でき、両方とも機能します。
文字列が '-0,23'の場合、どの整数結果が得られますか? –
- > SwiftでNSStringを使用しないでください – Alexander