条形码阅读器为我提供了以下字符串,显示在文本框static void SYSTEM_START_Function (UInt8 parameterSize, char* pointerToPassedParameters)
{
}
中。在数字字符串中,以下位置是价格7612345203508
现在,我想用一个点来显示价格,如本示例76123452(0350)8
我该如何正确表示呢?
我的代码如下:
VS2010 C#
761234520350 Fr. 03.50
输出:textBox1.Text = axOPOSScanner1.ScanDataLabel; //Preis
textBox1.Text += "\t" + "Fr." + axOPOSScanner1.ScanDataLabel.Remove( 0, 8 );
谢谢
答案 0 :(得分: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);
答案 1 :(得分:2)
这应该是本示例的窍门:
textBox1.Text += "\t" + "Fr. " + axOPOSScanner1.ScanDataLabel.Substring(8, 2) + "." + axOPOSScanner1.ScanDataLabel.Substring(10, 2);
但是要考虑到更长或更短的ScanDataLabel不会为您提供正确的数字或抛出ArgumentOutOfRangeException
。