在angularjs中格式化数字的最合适方法

时间:2015-12-14 08:17:39

标签: angularjs internationalization angularjs-filter

我的问题是我想根据我的语言格式化数字。例如,将en-US中的123456.12345显示为123,456.12或将fa-IR显示为۱۲۳٬۴۵۶٫۱۲

我能想象的最好的解决方案是编写一个角度滤镜,但我认为它非常慢,因为我需要在视图中显示太多数字。

我的问题:有没有更好的方法来处理这个问题,或者我必须使用角度过滤器?

1 个答案:

答案 0 :(得分:1)

带过滤器的解决方案1:

您可以在index.html中包含相对语言环境脚本,如here所述:

<html ng-app>
 <head>
….
   <script src="angular.js"></script>
   <script src="i18n/angular-locale_de-de.js"></script>
….
 </head>
</html>

然后使用内置过滤器number,您可以轻松地对其进行格式化

使用toLocaleString的解决方案2:

如果您不想使用过滤器,则必须手动转换数字&#34;&#34;对每个号码使用toLocaleString

$scope.myNumber = 9999.99;

$scope.myNumber.toLocaleString('de-DE');

这是JSFidlle,显示如何为de-DE语言环境设置数字的格式,而不是默认使用的en-US格式