Xamarin Forms条目文本不返回数字

时间:2018-07-30 05:21:03

标签: c# forms xamarin math text

我对编程很陌生。我正在尝试将输入文本存储在float变量中,然后计算基本百分比并将其显示在标签下方。代替标签内的变量,它显示NaN。如果我改用整数,则表示我正在尝试除以零,这表明从条目读取的文本什么也不返回。

这可能是什么原因?

public partial class GoalTrackerPage : ContentPage
{
    float goal = 0.0000f;
    float done = 0.0000f;
    float progress = 0.0000f;


    public GoalTrackerPage ()
    {
        InitializeComponent ();

        g1EntryGoal = new Entry();
        g1EntryDone = new Entry();
        g1PrBar = new ProgressBar();          
    }

    private void add1_Clicked(object sender, EventArgs e)
    {
        GoalStatusLabelView();
    }

    private void GoalStatusLabelView ()
    {          
        progress = done / goal * 100.0000f;
        g1StatusLabel.Text = "The Goal is at " + progress;
    }

    private void g1EntryGoal_Completed(object sender, EventArgs e)
    {
        goal = float.Parse(g1EntryGoal.Text ?? "0");
    }

    private void g1EntryDone_Completed(object sender, EventArgs e)
    {
        done = float.Parse(g1EntryDone.Text ?? "0");
    }

2 个答案:

答案 0 :(得分:0)

{          
    progress = done / goal * 100.0000f;
    g1StatusLabel.Text = "The Goal is at " + progress;
}

结果基本上只是零,并且由于它携带一个双精度值,它将在g1StatusLabel.Text返回NaN。

也许这会为处理NaN结果提供更多信息。

Double.NaN Field

答案 1 :(得分:0)

我知道了!由于我一直在事件“ Text Completed”中分配text属性,因此我应该使用其他语法。 这种情况的正确语法为:

var g1DoneText =((Entry)sender).Text;

代替标准:    var g1DoneText = G1EntryDone.Text;