我这里有点问题。我在下面有一个应用程序片段,该应用程序在美国、英国、南非和澳大利亚的全球 PC 上运行良好。但是,在两台德国同事的机器上,以下代码失败并出现以下错误:
System.OverflowException:对于 Int16,值太大或太小。
这发生在 Convert.ToInt16 步骤中。我想知道这是否可能是由于德国的十进制系统是逗号而不是句号引起的?此外,该示例的 fieldItemsValues 值为:
[InputText_confirmName,0,2,49.5216,726.6744,303.2712,47.9664,false,0,0,false,0]
所有字符串
string[] widgetProperties = fieldItemValues[0].Split('_');
string widgetType = widgetProperties[0];
string widgetID = widgetProperties[1];
Console.WriteLine("Type: " + widgetType + " ID: " + widgetID);
float widgetLeft = Convert.ToSingle(fieldItemValues[3]);
float widgetTop = Convert.ToSingle(fieldItemValues[4]);
float widgetWidth = Convert.ToSingle(fieldItemValues[5]);
float widgetHeight = Convert.ToSingle(fieldItemValues[6]);
int widgetLeftPx = Convert.ToInt16(widgetLeft * 2.0);
int widgetTopPx = Convert.ToInt16(widgetTop * 2.0);
int widgetWidthPx = Convert.ToInt16(widgetWidth * 2.0);
int widgetHeightPx = Convert.ToInt16(widgetHeight * 2.0);