0

条形码阅读器为我提供了以下显示在文本框中的数字字符串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

2 回答 2

2

尝试格式化字符串插值。如果价格由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);
于 2018-07-26T14:12:11.667 回答
2

这应该可以解决此示例:

textBox1.Text += "\t" + "Fr. " + axOPOSScanner1.ScanDataLabel.Substring(8, 2) + "." + axOPOSScanner1.ScanDataLabel.Substring(10, 2);

但要考虑到更长或更短的 ScanDataLabel 不会给你正确的数字或​​抛出ArgumentOutOfRangeException.

于 2018-07-26T14:13:32.510 回答