2016-10-03 5 views
3

空白を追加して小数点を揃えるのに問題があります。私はロジックを理解していますが、コードに入れることはできません。10進数の値を空白スペース文字列に合わせる?

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文が配列の最初のインデックスであるかどうかを確認するためのものです。私は既に値が一番高いものを並べ替えるので。だから私が望むのは、他の値が最上位の10進数と揃うようにすることです。

私は通貨タイプと値をとり、costs_totalという新しい配列にプッシュします。これは現在のように見えます。

現在のレイアウト:

Current layout

どのように私は通貨の値の異なる長さのために必要とされているどのように多くのスペースをチェックするループをやって行くのでしょうか?

+0

@kukkuzお手伝いできますか? –

+0

最も簡単なことは、2列のレイアウトを持つことだと思います。「量」に対して 'text-align:right'を行うことができます。あなたが探しているものではありません、私たちはコードで遊ぶことができるようにスニペットを置くことができますか?ありがとう! – kukkuz

+0

@kukkuz私はこのようにしたいと思います。私もそれをしなければならなかった場合、通貨は価値の長さに応じて整列されませんでした。 –

答えて

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)の幅を設定する必要があると思います。

関連する問題