C# Convert.ToDouble中忽略小数点

C# Convert.ToDouble中忽略小数点,c#,visual-studio,double,C#,Visual Studio,Double,在C#visualstudio中,读取后不在double中取小数点,并使用 Convert.ToDouble(Console.ReadLine()); 命令。。。例如,如果键入了12.25,则将值保存为1225。我能得到任何帮助吗? 这是我正在使用的代码 double number; Console.WriteLine("Enter a number with a two decimal places!"); number = Convert.ToDouble(Console.ReadLin

在C#visualstudio中,读取后不在double中取小数点,并使用

Convert.ToDouble(Console.ReadLine()); 
命令。。。例如,如果键入了
12.25
,则将值保存为
1225
。我能得到任何帮助吗? 这是我正在使用的代码

double number;
Console.WriteLine("Enter a number with a two decimal places!");
number = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(number):
Console.ReadLine();

您当前的代码应该按预期工作,如果不按预期工作,则可能是由于文化问题导致的,这些文化问题期望您的双字符串采用不同的格式(即
12,25
而不是
12.25

解析时应用当前区域性

通过
System.Globalization
命名空间解析方法中的值时,可以通过应用当前区域性来处理此问题:

// This would use the current culture to handle reading your value
double input = Convert.ToDouble(Console.ReadLine(),CultureInfo.InvariantCulture);
处理各种文化差异(即句号或逗号)

如果希望处理句点或逗号,则可以用相同的方式执行替换:

// Get the number separator for this culture and replace any others with it
var separator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
// Replace any periods or commas with the current culture separator and parse
var input = Double.Parse(Regex.Replace(Console.ReadLine(),"[.,]",separator));

你可以。

这可能是一个全球化问题,正如某些文化所使用的,而不是。将小数点分隔开。希望它能解决你的问题

string userInput = Console.ReadLine();
double inputInDouble = Convert.ToDouble(userInput,System.Globalization.CultureInfo.InvariantCulture);

当您的本地文化不使用
作为十进制分隔符时,它将不起作用。 如果要使用
十进制分隔符输入double,则需要指定使用该分隔符的区域性

Convert.ToDouble(yourString, System.Globalization.CultureInfo.InvariantCulture)
如果要以相同的格式输出它,请再次使用相同的
CultureInfo

CultureInfo culture = CultureInfo.InvariantCulture;
double input = Convert.ToDouble(Console.ReadLine(), culture);
Console.WriteLine(String.Format(culture, "{0}", input));

您能否显示代码,因为您描述的内容应该正常工作。您可能有错误的区域性,它可能正在寻找
,而不是作为分隔符的
。(请将标题改为更具描述性的标题)欢迎使用SO。请阅读。我现在已经显示了代码。。!很抱歉,我的问题措词不够严谨,因为我对这个问题还不熟悉。。!谢谢你的回答,这很有帮助。。!