将十进制值与空格字符串对齐?

时间:2016-10-03 18:26:28

标签: javascript alignment decimal padding

我无法添加空格来对齐小数。我理解逻辑,但我无法将其写入代码。

for(var j in totals_array)
        {
            var amount = format_numeric_with_commas(totals_array[j].amount);
            var currency = totals_array[j].currency;
            if(j < 1)
            {
                costs_total.push(currency + " " + amount + "\x0A");
            }
            else
                costs_total.push(currency + Array(0).join(" ") + amount + "\x0A");
        }

totals_array包含许多看起来像这样的对象。

{"currency":"AUD","amount":210543}

format_numeric_with_commas以适当的格式为我提供了存储在变量amount中的金额值。虽然currency取值的货币,即GBP,USD等。如果if语句是数组中的第一个索引,那么if语句用于检查。因为我已经对顶部最高的值进行排序。所以我想要的是其他值与顶部数字的十进制对齐。

我获取货币类型和值并推入名为costs_total的新数组。这就是它目前的样子。

目前的布局:

Current layout

我如何进行循环以检查不同长度的货币值需要多少空格?

1 个答案:

答案 0 :(得分:0)

为什么不做这样的事呢? (一些带有实际文本/数字的例子)

costs_total.push(String.Format("{0} {1,12:N}\x0A", "USD", 123456.0)); 
// "USD   123,456.00\n"

costs_total.push(String.Format("{0} {1,12:N}\x0A", "AUD", 123.0));    
// "AUD       123.00\n"

costs_total.push(String.Format("{0} {1,12:N}\x0A", currency, amount));    

您只需要找到最大数字中的位数,并设置宽度(本例中为12)。