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 と表示されます