我尝试从用户输入(字符串)中读取一个数字,如下所示:
' Where "." is grouping separator and "," is the decimal character
dim strUserInput as string = "172.500,00"
dim ret as double
' Produces 172.5 ("." is the decimal separator)
ret = val(strUserInput)
'
' Alternative Way
' Still producing 172.5
strUserInput = strUserInput.tostring(CultureInfo.InvariantCulture) 'nothing changes
ret = val(strUserInput)如何正确使用CultureInfo将172,500.00 (或172500,00或仅172500)返回给双精度变量?
发布于 2011-06-02 02:23:27
从MSDN documentation for val
Val函数仅识别句点(.)作为有效的小数分隔符。当使用不同的小数分隔符时,请改用CDbl或CInt将字符串转换为数字。若要将特定区域性中数字的字符串表示形式转换为数值,请使用数值类型的Parse( string,IFormatProvider)方法。例如,在将字符串转换为双精度值时使用System.Double.Parse(System.String,System.IFormatProvider)。
发布于 2011-06-02 02:34:22
Double.Parse("175.500,00", CultureInfo.GetCultureInfo("whatever culture the input is"))德国文化"de“使用十进制逗号和句点作为千位分隔符,所以如果你不知道,你可以用它。
https://stackoverflow.com/questions/6205805
复制相似问题