While casting from string to double, the dot gets removed, eg. for 0.01 after casting to double it gives 1, or for 3.22 it gives 322.
Below is the Code I used.
In log file I get
Before Usage :- 0.01
After it Parse :- 1
while (reader.Read())
{
    XmlNodeType nType = reader.NodeType;
    if (nType == XmlNodeType.Element && reader.Name == "DepartmentUser")
    {
        UserData user = new UserData();
        while (reader.MoveToNextAttribute())
        {
            if (reader.Name == "UserName")
            {
                user.UserName = Convert.ToString(reader.Value);
            }
            else if (reader.Name == "UserID")
            {
                user.UserGUID = Convert.ToString(reader.Value);
            }
            else if (reader.Name == "UserUsage")
            {
                Logger.TraceLog(LogLevel.Debug, string.Format("Before Usage :- {0}", reader.Value));
                //user.DiskUsage = Convert.ToDouble(reader.Value);
                user.UserUsage = double.Parse(reader.Value);
                Logger.TraceLog(LogLevel.Debug, string.Format("After it Parse :- {0}", user.UserUsage));
            }
        }
    }
}
Is this due to Culture?