【发布时间】:2016-11-22 10:29:26
【问题描述】:
您可以在互联网上阅读using floats to represent currency is a very bad idea。推荐的最佳实践是使用表示美分的整数。这样您就不会遇到任何精度问题,尤其是在您进行一些计算时。
由于我很天真而且过于乐观,我选择了(尽管有警告)浮动来代表我的应用程序中的货币。一开始还挺顺利的。现在我遇到了各种各样的问题(尤其是比较问题),想从浮点数切换到整数。
不幸的是,angular 不支持将整数整数作为货币过滤器的输入(至少据我所知)。我有点惊讶,到目前为止似乎没有人想出这个(在 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);
};
}]);
【问题讨论】:
-
您期望的输入/输出是什么?
-
当前输入:
(float) 5.97输出:5,97 €。想要的输入:(int) 597想要的输出:5,97 €
标签: javascript angularjs precision currency