下面的ScanDataLabel输出如何降价?

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


慕哥9229398
浏览 155回答 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);

江户川乱折腾

对于此示例,这应该可以解决问题:textBox1.Text += "\t" + "Fr. " + axOPOSScanner1.ScanDataLabel.Substring(8, 2) + "." + axOPOSScanner1.ScanDataLabel.Substring(10, 2);但请考虑到更长或更短的 ScanDataLabel 不会为您提供正确的数字或抛出ArgumentOutOfRangeException.
打开App,查看更多内容
随时随地看视频慕课网APP