Convert.ToDouble
uses current culture settings by default.
Probably your current culture has different string than .
as a NumberDecimalSeparator
.
As a solution, you can use a culture that already has .
as a NumberDecimalSeparator
like InvariantCulture
, or your can Clone
your CurrentCulture
, set it's NumberDecimalSeparator
to .
and use that cloned culture in your Convert.ToDouble
method (or double.Parse
) as a second parameter.
var d = double.Parse(".1", CultureInfo.InvariantCulture);
or
var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ".";
var d = double.Parse(".1", clone);