我无法添加空格来对齐小数。我理解逻辑,但我无法将其写入代码。
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
的新数组。这就是它目前的样子。
目前的布局:
我如何进行循环以检查不同长度的货币值需要多少空格?
答案 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)。