TextInput
を返す必要がある場所がありNumber
ます。私の問題は、入力された値がログインしているユーザーにローカライズされ、それが小数点記号に影響することです。ポーランド語のユーザーから番号を取得しようとすると、常に を取得するようですがNaN
、英語のユーザーにはうまく機能します。
入力例: 英語: 23.5 ポーランド語: 23,5
これに対する回避策はありますか? 動作しない次のものがあります。
public function get myValue():Number {
var value:Number = new Number(StringUtil.trim(text)); //NaN with Polish
return value;
}
私も次のことを試しましたが、それも与えますNaN
:
private function myValue(number:Number, precision:Number=2):Number{
var numberFormatter:NumberFormatter = getNumberFormatter(precision);
return new Number(numberFormatter.formatNumber(number));
}
private function getNumberFormatter(precision:Number=2):NumberFormatter{
var iso:String = ClientInfo.instance.language.ISOCode;
var formattedIso:String = iso.substr(0, 2)+'_'+iso.substr(2,2);
var numberFormatter:NumberFormatter = new NumberFormatter(formattedIso);
numberFormatter.fractionalDigits = precision;
numberFormatter.trailingZeros = true;
return numberFormatter;
}
NumberFormatter
コードをデバッグすると、が正しく動作することがわかりますが、その呼び出しnew Number("23,5")
では常にNaN
.