如何将以下 ScanDataLabel 输出降低为价格?
How can the following ScanDataLabel output be reduced to the price?
条形码 reader 为我提供了以下显示在文本框 7612345203508
中的数字字符串。一串数字里面是下面那个地方的价格 76123452(0350)8
现在我想像这个例子一样用一个点来显示 761234520350 Fr. 03.50
如何正确表示?
我的代码如下所示:
VS2010 C#
textBox1.Text = axOPOSScanner1.ScanDataLabel; //Preis
textBox1.Text += "\t" + "Fr." + axOPOSScanner1.ScanDataLabel.Remove( 0, 8 );
输出:7612345203508 Fr.03508
谢谢
尝试格式化和字符串插值。如果价格由 4
位数字组成
string source = axOPOSScanner1.ScanDataLabel;
textBox1.Text =
$"{source}\tFr. {decimal.Parse(source.Substring(source.Length - 5, 4)) / 100:00.00}";
如果是Visual Studio 2010(不支持字符串插值)
string source = axOPOSScanner1.ScanDataLabel;
textBox1.Text = string.Format("{0}\tFr. {1:00.00}",
source,
decimal.Parse(source.Substring(source.Length - 5, 4)) / 100);
这应该可以解决这个例子:
textBox1.Text += "\t" + "Fr. " + axOPOSScanner1.ScanDataLabel.Substring(8, 2) + "." + axOPOSScanner1.ScanDataLabel.Substring(10, 2);
但请注意,较长或较短的 ScanDataLabel 不会为您提供正确的数字或抛出 ArgumentOutOfRangeException
。
条形码 reader 为我提供了以下显示在文本框 7612345203508
中的数字字符串。一串数字里面是下面那个地方的价格 76123452(0350)8
现在我想像这个例子一样用一个点来显示 761234520350 Fr. 03.50
如何正确表示?
我的代码如下所示:
VS2010 C#
textBox1.Text = axOPOSScanner1.ScanDataLabel; //Preis
textBox1.Text += "\t" + "Fr." + axOPOSScanner1.ScanDataLabel.Remove( 0, 8 );
输出:7612345203508 Fr.03508
谢谢
尝试格式化和字符串插值。如果价格由 4
位数字组成
string source = axOPOSScanner1.ScanDataLabel;
textBox1.Text =
$"{source}\tFr. {decimal.Parse(source.Substring(source.Length - 5, 4)) / 100:00.00}";
如果是Visual Studio 2010(不支持字符串插值)
string source = axOPOSScanner1.ScanDataLabel;
textBox1.Text = string.Format("{0}\tFr. {1:00.00}",
source,
decimal.Parse(source.Substring(source.Length - 5, 4)) / 100);
这应该可以解决这个例子:
textBox1.Text += "\t" + "Fr. " + axOPOSScanner1.ScanDataLabel.Substring(8, 2) + "." + axOPOSScanner1.ScanDataLabel.Substring(10, 2);
但请注意,较长或较短的 ScanDataLabel 不会为您提供正确的数字或抛出 ArgumentOutOfRangeException
。