2017-12-05 6 views
-3

文字列をintに変換したいと考えています。私の問題は、今ではint値を取得することですが、カンマの後に数値を表示することはありません。文字列が-0,23の場合、intよりも0.が返されます。これを修正できますか?助けてください。あなたはfloatを使用する必要がIntはコンマの後に数字を表示しません

let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue 
+2

文字列が '-0,23'の場合、どの整数結果が得られますか? –

+2

- > SwiftでNSStringを使用しないでください – Alexander

答えて

2

後に数字を取ることはありません。米国では、小数点記号はピリオドです。 ( "。")コンマは区切り文字と見なされます。

さらに、小数点区切り記号がカンマのロケールであると仮定すると、整数に変換すると小数点記号の後の部分が切り捨てられます。

次のコードのようなコードが動作するはずです:

var str = "-0,23" 

let formatter = NumberFormatter() 
formatter.numberStyle = .decimal 
formatter.locale = Locale(identifier: "fr_FR") 


let aVal = formatter.number(from: str)?.doubleValue 

(フランスは、小数点区切り文字としてコンマを使用していますので、私は、ロケールとしてフランスのフランス語を使用しています。)あなたが考える必要が

注意ロケールをどのように扱うかを決めるために、数字の文字列がどこから来たのかを注意深く調べてください。これらがユーザー入力の文字列の場合は、デバイスのデフォルトのロケールで数値フォーマッタを使用してください。そうすれば、ヨーロッパのユーザーはカンマを小数点区切り記号として使用でき、米国のユーザーはピリオドを小数点記号として使用でき、両方とも機能します。

関連する問題