【问题标题】:Aligning Decimal Values with Blank Space String?将十进制值与空格字符串对齐?
【发布时间】:2017-02-11 18:45:38
【问题描述】:

我在添加空格以对齐小数点时遇到问题。我理解其中的逻辑,但我无法将其放入代码中。

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 采用值的货币,即英镑、美元等。 if 语句用于检查它是否是数组中的第一个索引。因为我已经对顶部最高的值进行了排序。所以我想要的是其他值与顶部数字的小数对齐。

我将货币类型和价值推入一个名为costs_total 的新数组中。这就是它目前的样子。

当前布局:

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

【问题讨论】:

  • @kukkuz 你能帮忙吗?
  • 我想最简单的做法是有一个两列布局......这样你就可以text-align: right 来表示“数量”,它会根据需要对齐......嗯,如果这不是你要找的,你可以放一个 sn-p 以便我们可以使用代码吗?谢谢!
  • @kukkuz 我更喜欢这样做。如果我也这样做,那么货币将不会根据值的长度对齐。
  • 酷...你能给我们一个完整代码的小提琴/sn-p吗?

标签: javascript alignment decimal padding


【解决方案1】:

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

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)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2012-02-03
    • 2019-07-27
    • 1970-01-01
    相关资源
    最近更新 更多