正如你可以阅读遍布互联网using floats to represent currency is a very bad idea。建议的最佳做法是使用代表美分的整数。这样你就不会遇到任何精度问题,特别是如果你正在做一些计算。使用angulars货币过滤器的整数美分
由于我太天真,太过乐观,我选择 - 尽管所有警告 - 浮动来代表我的应用程序中的货币。起初进行得非常顺利。现在我遇到了各种各样的问题(尤其是比较),并希望从浮点数切换到整数。
不幸的是,角度不支持分数整数作为货币过滤器的输入(至少据我所知)。我有点惊讶,看起来目前为止没有人提出这个问题(在github上没有相应的问题,没有任何关于SO等)。
有什么最佳实践吗?你能想到的任何缺点的这样一个简单的过滤器可能有:
angular
.module('myApp')
.filter('cents', ['$filter', function($filter) {
return function(cents, symbol, fractionSize) {
var asFloat = cents/100;
return $filter('currency')(asFloat, symbol, fractionSize);
};
}]);
什么是您期望的输入/输出? – developer033
电流输入:'(float)5.97'输出:'5,97€'。 想要的输入:'(int)597'想要的输出:'5,97€' –