flex 4.1 NumberFormatter: настроить показ точности только в том случае, если число с плавающей - PullRequest
0 голосов
/ 10 августа 2010

В настоящее время я использую следующий NumberFormatter:

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

, поэтому он меняет 5.43234234 на 5.4.

Я хочу, чтобы NumberFormatter не показывал какую-либо точность, если ее нет.

, что означает, что если число равно 5.0, я хочу, чтобы оно отформатировало его до 5, а не до 5.0.

, как я могу это сделать?

с использованием flex 4.1

спасибо

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Я думаю, что вам нужно интегрировать свой собственный код ActionScript, вы не можете сделать это только с тегом MXML. Что-то вроде:

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;
  }
}

Я не запускал это, но считаю, что это сработает.

1 голос
/ 20 июня 2011

Или вы можете обернуть вывод с помощью этой функции:

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