How can I specify that my decimal.Parse must always expect to receive a string with a '.' like "4.75" no mater what the system settings of the computer are?
I am reading in a file from excel and it gives me value with a '.' and I see that if I run my program on my laptop It throws and error as it expects a ','
I can use:
string tmp1 = tmp[2].Replace('.', ',');
but then obviously if my computer wants a ''. then it will give an error.
What is my best option?
See: Double.Parse
Use this overload to specify an IFormatProvider
in your case CultureInfo.InvariantCulture
.
var value = double.Parse(tmp[2], CultureInfo.InvariantCulture);
However I would recommend Double.TryParse
if you intend to make your process durable.
double value;
if(!double.TryParse(tmp[2],
NumberStyles.None,
CultureInfo.InvariantCulture,
out value))
{
// error handling
}
使用Double.Parse Method (String, IFormatProvider)
和CultureInfo.InvariantCulture
进行解析。
double d = double.Parse("2.2", CultureInfo.InvariantCulture);
您可以使用Decimal.Parse的重载,它允许您指定文化:
decimal value = decimal.Parse(tmp[2], CultureInfo.InvariantCulture);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.