【发布时间】:2016-10-01 11:58:19
【问题描述】:
我正在尝试打印收据。我使用这种方法在标题和价格之间放置一个空格:
private string getStringForList(string menu, string price, string title)
{
if (price != null)
{
decimal Prices = Convert.ToDecimal(price);
menu = menu.PadRight(33,' ');
return menu + Prices.ToString("c2");
}
else
{
return menu.PadRight(46) + title;
}
}
但它似乎并不像那样工作。结果我得到了这个:
如何将这些价格打印成一行?
【问题讨论】:
-
无论菜单项有多大,您总是添加相同的填充,因此它总是会显得格格不入。
-
只是一个想法,您是否尝试过这样的方法来确保 PadRight 正常工作?
return menu + "test";只是好奇我们是否可能从 decimal.tostring 转换中得到一些未知的空格。 -
我也试过 totalWidth - menu.Length
-
我试过了 Test 。但它是一样的。我什至测试了菜单标题,但也没有未知字符。
-
Arial 是一种可变宽度字体,因此不对齐计数空间。如果你想使用这种技术,那么你应该选择monospaced font