我有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
.