开发者

flex 4.1 NumberFormatter: configure to show precision of one only if the number is float

Currently I use the following NumberFormatter:

<mx:NumberFormatter id="numberFormatter" precision="1" useThousandsSeparator="true"  />

so it changes 5开发者_StackOverflow社区.43234234 to 5.4.

I want the NumberFormatter to not show any precision if there isn't one.

which means that if the number is 5.0, i want it to format it to 5, and not to 5.0.

how can I do so?

using flex 4.1

thanks


I think you need to integrate your own actionscript code, you can't do it with a MXML tag only. Something like:

private function toPrecisionOrRound(number:Number, precision:int):String {
  String result = number.toPrecision(int);
  String rounded = number.toFixed(0);
  if (Number(result) == Number(rounded)) {
    // they are equal so the toPrecision must have zeros at end
    return rounded;
  } else {
    return result;
  }
}

I haven't run this but I reckon it will work.


Or you can wrap the output with this function:

private function clearTrailingZero(valueString:String):String {
    return valeString.replace(/\.0/, "");
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜