2017-10-18 90 views
1

我有一个录入完成事件验证码:(Xamarin)C#双师返回无穷时,不应该

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正确......所以,问题似乎是设置插件...

+1

Settings.MinRate是什么类型? –

+0

它也是一个双。当您使用Settings插件实际保存/加载时,或者在实际完成MinRate计算时,您说“保存”时,我编辑了我的问题: – rickrvo

+1

? – Jason

回答

0

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

我在插件github上创建了bug报告,并且它在插件的3.1.1版本中很快被修复。

它现在按预期工作! :)

感谢您的帮助!