我正在尝试从用户输入(字符串)中读取一个数字,如:
' 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)返回到双变量?
答案 0 :(得分:3)
Double.Parse("175.500,00", CultureInfo.GetCultureInfo("whatever culture the input is"))
德国文化“de”使用十进制逗号和句号作为千分隔符,所以如果你不知道就可以使用它。
答案 1 :(得分:1)
Val功能仅识别 句点(。)作为有效小数 分隔器。当小数不同时 使用分隔符,如 国际申请,使用CDbl 或者CInt而不是将字符串转换为 一个号码。要转换字符串 a中数字的表示 特定的文化到数值, 使用数字类型的Parse(String, IFormatProvider)方法。例如, 使用 System.Double.Parse(System.String,System.IFormatProvider) 将字符串转换为Double时。