开发者

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

开发者 https://www.devze.com 2023-01-10 19:01 出处:网络
Currently I use the following NumberFormatter: <mx:NumberFormatter id=\"numberFormatter\" precision=\"1\" useThousandsSeparator=\"true\"/>

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

精彩评论

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