3
for (int iCount = 0; iCount < oForm.LineItems.Count; iCount++)
           {

// cartDetails はここでは stringbuilder です。

     cartDetails.Append(String.Format("{0:0}", oForm.LineItems[iCount].Quantity));
     cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].Price));
     cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].ExtendedPrice));

     //cartDetails.Append(string.Format("{0,10:#,##0.00}", oForm.LineItems[iCount].Price) + "</TD><TD>");
     //cartDetails.Append(string.Format("{0,10:#,##0.00}", oForm.LineItems[iCount].ExtendedPrice) + "</TD><TD>");
     //cartDetails.Append(String.Format("{0}", oForm.LineItems[iCount].Quantity).PadLeft(4)+ "</TD><TD>");
     //cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].Price).PadLeft(8) + "</TD><TD>");

使用しているソースコードを貼り付けました。qty、price、extendedprice を追加すると、すべて 10 進数の列になります。私がやろうとしているのは、先頭のスペースを左に埋め込むことだけです。2桁への小数の丸めが行われているようです。

上記のコメント行は、私が試した他のオプションの一部です。現在、qty に 4 や 40 などの値が含まれている場合、表に印刷すると位置合わせされません。値段も一緒。

誰かが私がここで何をしているのか教えてください。

Update1: Lucas の提案を試してみましたが、うまくいきません。これが私が得ているものです。

cartDetails.Append(String.Format("{0:0,10}", oForm.LineItems[iCount].Quantity));

上記を試してみると、oForm.LineItems[iCount].Quantity の値に関係なく、すべての行で 10 と表示されます。

String.Format("{0:0,4}" を変更すると、すべてのレコードで 04 と表示されます

4

2 に答える 2

5

AppendFormatフォーマットされた文字列を追加する代わりにメソッドを使用できます。また、正しい形式は になります{index,padding:format}。そして、foreach代わりに使用することを検討してforください:

foreach (var lineItem in oForm.LineItems)
{ 
    cartDetails.AppendFormat("{0,4:0}", lineItem.Quantity);
    cartDetails.AppendFormat("{0,10:0.00}", lineItem.Price);
    // etc
}
于 2012-11-29T20:12:58.360 に答える
1

備考:これは、テキスト ファイルなどの文字ベースの表現での alignemend 用です。

複合フォーマット (MSDN)の最後のセクションをご覧ください。

最初に必要に応じて数値をフォーマットし、結果を埋めます

cartDetails.AppendFormat("{0,4}", // padding with spaces
    String.Format("{0:0}", oForm.LineItems[iCount].Quantity));  // format number

Addtition:データを html テーブルに配置する場合は、css (またはインライン スタイル) を使用する必要があります。

<td class="right">This is right aligned</td>

CSSで

.right { text-align: right; }

またはインライン:

<td style="text-align: right">This is right aligned</td>
于 2012-11-29T19:53:08.713 に答える