我需要根据系统文化使应用程序工作。但我使用了许多硬编码值进行位和字节转换,如Dim maxlimit as double=4.999999
。
当我为应用程序更改cultureInfo时,位转换不正确。所以我正在寻找一个解决方案如何根据系统文化使用硬编码的double值并对其进行操作?(如乘法,除法,加法)。
我根据系统文化使用下面的代码片段将值转换为Double。我把文化设置为“de-DE”
代码:
Dim l_sDoubleValue As Double
If String.Equals(CultureInfo.CurrentUICulture.ToString(), "de-DE",StringComparison.OrdinalIgnoreCase) Then
l_sDoubleValue = Convert.ToDouble(p_sValue.ToString(CultureInfo.CurrentUICulture), CultureInfo.CurrentUICulture.NumberFormat)
ElseIf String.Equals(CultureInfo.CurrentUICulture.ToString(), "en-US", StringComparison.OrdinalIgnoreCase) Then
l_sDoubleValue = Double.Parse(p_sValue)
End If
Return l_sDoubleValue
示例:
Value = 4.999999
当我使用p_sValue.ToString(CultureInfo.CurrentUICulture)
将值转换为字符串时
输出是4,999999但是当我将值转换为Double时,输出为4.999999