我对编程很陌生。我正在尝试将输入文本存储在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");
}
答案 0 :(得分:0)
{
progress = done / goal * 100.0000f;
g1StatusLabel.Text = "The Goal is at " + progress;
}
结果基本上只是零,并且由于它携带一个双精度值,它将在g1StatusLabel.Text返回NaN。
也许这会为处理NaN结果提供更多信息。
答案 1 :(得分:0)
我知道了!由于我一直在事件“ Text Completed”中分配text属性,因此我应该使用其他语法。 这种情况的正确语法为:
var g1DoneText =((Entry)sender).Text;
代替标准: var g1DoneText = G1EntryDone.Text;