#javascript #angularjs
#javascript #angularjs
Вопрос:
У меня есть модель, которая содержит цифры в этом формате
10000000
200000000
3000000000
70000000
и вот модель
{{myData}}
Я могу форматировать данные, но это добавляет два знака после запятой в начале переменной, используя это
{{myData | number : 2}} which prints 100.00000
как добиться этого для переменных — моя задача
100000.00
Комментарии:
1. Этот фильтр не выдает то, что вы говорите, что он делает
2. да, это не так, я искал способ обрезать два нуля из последней переменной
Ответ №1:
Разделите на 100 и используйте toFixed()
в результате
{{ (myData/100).toFixed(2) }}
angular.module('app',[]).controller('Ctrl', function($scope){
$scope.myData = 1000
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="Ctrl">
{{(myData/100).toFixed(2)}}
</div>
Комментарии:
1. Сработало как по волшебству!
2. Если вы хотите, чтобы разделители тысяч могли использовать
number:2
filter вместо этого после разделения3.
{{ (myData/100) | number:2 }}
4. оба дали одинаковый результат
Ответ №2:
Вы можете напрямую использовать в угловом представлении html, где вы динамически отображаете значение в виде:
{{ parseFloat(myData).toFixed(2) }}
Ответ №3:
Для этого вы можете использовать toFixed()
Вид:
<div>
{{parseFloat(myData).toFixed(2)}}
</div>
JS:
$scope.parseFloat = parseFloat;
$scope.myData = 1000
Комментарии:
1. могу ли я добиться этого в представлении, а не в коде javascript
2. @user10445503 вы должны добавить метод parseFloat в $scope. Вот пример plnkr.co/edit/3ROw6aKdfCwwTdYp0rJi?p=preview
3. Я думаю, вы не понимаете, что я имею в виду >>> если вы проанализируете 1000, это должно быть 10.00 в качестве результата