C# 双除法在不应该的时候返回无穷大

C# Double division returning infinity when is not supposed to

我在 Entry 完成事件中有此代码:(Xamarin)

if (double.TryParse(txt_MinRate.Text, out double i))
{
    if (i < 0.0 || i > 6.0)
    {
        if (i > 6.0)
        {
            DisplayAlert("Invalid input", "6% is the maximum rate allowed.", "OK");
            txt_MinRate.Text = "6.0";
        }
        else if (i < 0.0)
        {
            DisplayAlert("Invalid input", "Don't worry. There will never be a negative rate", "OH Good");
            txt_MinRate.Text = "0.0";
        }
    }
    else
    {
        Settings.MinRate = i / 100.0;
    }
}

事情是...如果我键入 0.01 Settings.MinRate 将以值 0.0001 保存,这是预期会发生的情况。

如果我在条目中键入 0.001.... Settings.MinRate 保存为 -Infinity.....

谁能解释一下这是怎么回事?

编辑:

公平地说 Settings.MinRate 不是一个简单的双...我认为... 这是在 Settings.cs 文件中:

        private const string txt_MinRateyKey = "txt_MinRate_Key";
        private static readonly double txt_MinRateDefault = 0.0;
        public static double MinRate
        {
            get => AppSettings.GetValueOrDefault(txt_MinRateyKey, txt_MinRateDefault);
            set => AppSettings.AddOrUpdateValue(txt_MinRateyKey, value);
        }

编辑 2:

我只是添加了一个简单的行:double x = i / 100;在 Settings.MinRate = i / 100;

之后

抱歉上次编辑...我的错...双 x 值的结果是正确的...1E-05...所以问题似乎是设置插件...

问题是我正在使用的设置插件...

我在插件 github 上创建了错误报告,它很快就在插件的 3.1.1 版中修复了。

现在可以正常使用了! :)

感谢您的帮助!