2016-04-20 15 views
1

画像と同じです。一部の値は正しく変換されますが、変換されない値の一部は...javascriptで数字を100万に変換する方法

数値を100万に変換したいと思います。数値を変換するために、Money形式の関数を使用していますが、数値を変換できません。

これはコントローラ部分です。いくつかの数字は数百万に変換されていますが、いくつかの数字は変換されていません。誰か助けてください。

$scope.MoneyFormat = function (labelValue) 
        { 
          // Nine Zeroes for Billions 
          return Math.abs(Number(labelValue)) >= 1.0e+9 

           ? Math.abs(Number(labelValue))/1.0e+9 + "B" 
           // Six Zeroes for Millions 
           : Math.abs(Number(labelValue)) >= 1.0e+6 

           ? Math.abs(Number(labelValue))/1.0e+6 + "M" 
           // Three Zeroes for Thousands 
           : Math.abs(Number(labelValue)) >= 1.0e+3 

           ? Math.abs(Number(labelValue))/1.0e+3 + "K" 

           : Math.abs(Number(labelValue)); 
        } 

ここでは、Moneyformatを使用して数値を変換しています。これは私が数値を変換しているコントローラの部分です

  $scope.rep.won = $scope.MoneyFormat($scope.rep.won); 
      $scope.outlook.rem = $scope.MoneyFormat($scope.outlook.rem); 
      $scope.rep.expectedAmount = $scope.MoneyFormat($scope.rep.expectedAmount); 
      $scope.rep.potential = $scope.MoneyFormat($scope.rep.potential); 
      $scope.rep.quota = $scope.MoneyFormat($scope.rep.quota); 
+1

入力のいくつかの例を与え、私はすべての値のために6.8Mのように表示したい機能 –

+0

の結果を予想してください。 – JAVA

+0

"いくつかの数字は変換していません"変換していない例は何ですか? –

答えて

10

$ scope.MoneyFormatは何も分かりません。

私は単純な古いjs関数に関数を単純化し、それは動作します。

function test (labelValue) { 

    // Nine Zeroes for Billions 
    return Math.abs(Number(labelValue)) >= 1.0e+9 

    ? Math.abs(Number(labelValue))/1.0e+9 + "B" 
    // Six Zeroes for Millions 
    : Math.abs(Number(labelValue)) >= 1.0e+6 

    ? Math.abs(Number(labelValue))/1.0e+6 + "M" 
    // Three Zeroes for Thousands 
    : Math.abs(Number(labelValue)) >= 1.0e+3 

    ? Math.abs(Number(labelValue))/1.0e+3 + "K" 

    : Math.abs(Number(labelValue)); 

} 

alert(test(6800000)); // this outputs 6.8M 

JSFiddle:https://jsfiddle.net/r5ju34ey/

関連する問題