丸めを行わずに通貨/数値入出力を作成しようとしています。丸めなしのAngularJS通貨/数値出力
私が通貨を使用して遭遇する問題は、(1)3番目の数字が入力されると2番目の小数点を丸め、(2)3番目の数字を入力できるようにすることです。 del()関数に気付いた場合は、数値の最後が削除されますが、表示は$ 27.46です。文字列は実際には27.45606020になる可能性があり、バックスペースはユーザーが見ることのできない数字を削除します。
現時点では、AngularJSの通貨や数字を気にせずに、小数点以下2桁までの桁数を防ぐフィルタを使用するハッキーコードもあります。一度追加する。
{{checkTotal | dropDigits}
.filter('dropDigits', function() {
return function(floatNum) {
return String(floatNum)
.split('.')
.map(function (d, i) { return i ? d.substr(0, 2) : d; })
.join('.');
};
})
.controller('tipController', function($scope) {
// Numpad
$scope.checkTotal = '0.00';
$scope.clicked = function (label) {
if($scope.checkTotal === '0.00') {
$scope.checkTotal = label;
} else {
$scope.checkTotal += label;
}
};
// Prevent multiple decimals
$scope.clickedDot = function() {
if (($scope.checkTotal.indexOf('.') < 0) || ($scope.checkTotal === '0.00')) {
if (($scope.checkTotal === '0.00') || ($scope.checkTotal === '')) {
$scope.checkTotal = '0.';
} else {
$scope.checkTotal += '.';
}
}
};
$scope.del = function() {
$scope.checkTotal = $scope.checkTotal.slice(0, -1);
};
});
場合は、別のと私の問題を解決することができました$ .50? – nightowl
Nvm ..私はそれを修正するために[ここ](https://jsfiddle.net/gk81xc50/)を編集しました。私はこれが私の問題を解決すると思う、私が今理解しようとしている唯一のことは、これを私のコントローラに変換する方法である?あなたは入力に変更を加えましたが、$ scope.clickedから 'ラベル'を
私は自分の答えを更新しました。相対的な計算に過ぎませんでした。これは合計値(tip +入力値)です。 – AWolf