Samurai Jack
Samurai Jack

Reputation: 3125

Remove trailing zeros from a number inside AngularJS interpolation

I know there are answers for plain JavaScript code for this question but they are not available in this case.

I have a table which must be populated with data. My code looks like this:

<tr ng-repeat="rows in $ctrl.matrix[0] track by $index">
    <td>{{$ctrl.labels[$index]}}</td>
    <td ng-repeat="label in $ctrl.xMatrix">{{$ctrl.matrix[$index][$parent.$index].toFixed(2)}}</td>
</tr>

As it can be seen, it is used toFixed(2) to remove all but two digits after dot.

I want also this change:

34.90 => 34.9
 0.00 => 0

As it says here, I parseFloat(n.toFixed(2));, so in my case it would be:

{{parseFloat($ctrl.matrix[$index][$parent.$index].toFixed(2))}} or

{{$ctrl.parseFloat(matrix[$index][$parent.$index].toFixed(2))}}

but in both cases I get no error and my table is empty.

Is there a way to remove these zeros inside {{}}?

Upvotes: 1

Views: 1919

Answers (2)

Prafull
Prafull

Reputation: 591

Simple use number filter of Angular Js

{{$ctrl.matrix[$index][$parent.$index] | number}}

OR

Use $eval

{{$eval($ctrl.matrix[$index][$parent.$index])}}

Upvotes: 2

Daniel
Daniel

Reputation: 4946

Make sure you cast your number as a "number". Then cast as a string.

var numberstring = "1.2350000";

var number = Number(numberstring);
console.log(typeof number);

var zerodown = number.toString();
console.log(zerodown)

To change numbers inside {{}} is unlikely. This is a placeholder for variables that are dynamically applied. You should do that server side or after the value is parsed.

Upvotes: 0

Related Questions