【问题标题】:Converting Json response into comma separated (thousands) - Angular 5 - ES6将 Json 响应转换为逗号分隔(千) - Angular 5 - ES6
【发布时间】:2019-09-23 10:45:41
【问题描述】:

这是将 json 响应转换为逗号分隔数字的任何优雅方式(用于显示货币目的)。

这是我目前所拥有的:

let data = {      
   "business":{        
      "trasactionTableData":[  
         {  
            "Date":"2019-08-19T00:00:00",
            "Item Details":"Plastic - Grade A",
            "slotShare":"30",
            "assetBeforeonMarket":"24.000000",
            "profitAfterSales":"0.000000",
            "actualProfit":"22",
            "actualAmount":"USD 10.00"
         },
         {  
            "Date":"2019-08-19T00:00:00",
            "Item Details":"Cashless for Cash",
            "slotShare":"32",
            "assetBeforeonMarket":"60.000000",
            "profitAfterSales":"60.000000",
            "actualProfit":"0",
            "actualAmount":"USD 7400.10"
         },
         {  
            "Date":"2019-08-19T00:00:00",
            "Item Details":"Cashless for Cash",
            "slotShare":"33",
            "assetBeforeonMarket":"81.000000",
            "profitAfterSales":"81.000000",
            "actualProfit":"0",
            "actualAmount":"USD 200.59"
         }
      ],      
   }
}


 for (let i = 0; i < data.trasactionTableData.length; i++) {
        let slotShare = this.eosTblData[i].slotShare;
        let actualAmount = this.eosTblData[i].actualAmount;
        /*
    // need to convert below as well
    let assetBeforeonMarket = this.eosTblData[i].assetBeforeonMarket;
        let profitAfterSales = this.eosTblData[i].profitAfterSales;*/

        console.log('before convert', slotShare, 'After convert', String(slotShare).replace(/(.)(?=(\d{3})+$)/g,'$1,'));
    }

但我得到的是转换前 24.000000 转换后 24.,000,000

此示例的预期结果:

566,556,00

如何以优雅的方式实现这种转换?

【问题讨论】:

标签: javascript angular ecmascript-6


【解决方案1】:

是的,有。如果你只想显示格式化的货币,而不改变它的值,你可以使用CurrencyPipe,像这样:

    <p>{{ value | currency:'USD' }}</p>

【讨论】:

    【解决方案2】:

    只需使用数字管道。

    举个例子:

    {{ '1234567' | number:'.2'}}
    

    DEMO

    【讨论】:

    • 你能告诉我如何转换它。 "actualAmount":"USD 200.59"
    • 输入输出是什么?
    • 我已经给出了我的 json 结构。你能调查一下吗? .嗯,这就是为什么我试图循环通过。反正我失败了
    • 你想把 "actualAmount":"USD 200.59" 换算成什么?
    • say like .. 与 USD 123,345,67.00 相同
    【解决方案3】:

    您可以使用toLocalString 格式化您的号码。

    例如:

    const number = 5000;
    const localeNumber =  number.toLocaleString('en-GB');
    console.log(localeNumber); // log 5,000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2019-07-24
      相关资源
      最近更新 更多