【发布时间】:2016-07-25 20:08:15
【问题描述】:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace P2_7_24_2016_ED_app
{
public partial class Form1 : Form
{
int win;
int loss;
int winCounter;
int lossCounter;
public Form1()
{
InitializeComponent();
}
private void buttonWin_Click(object sender, EventArgs e)
{
this.textBoxWin.Text = "";
++win;
++winCounter;
this.textBoxWin.Text = win.ToString();
}
private void buttonLoss_Click(object sender, EventArgs e)
{
this.textBoxLoss.Text = "";
++loss;
++lossCounter;
this.textBoxLoss.Text = loss.ToString();
}
private void buttonRate_Click(object sender, EventArgs e)
{
textBox1.Text = "";
double result = winCounter / (winCounter + lossCounter);
textBox1.Text = result.ToString();
}
}
}
这是 windows 窗体应用程序中的代码,它很短,所以我不打算解释所有内容。
问题是到底textBox1.Text = result.ToString();
显示“0”,但应该是一些数字。当 win winCounter 为 1 且 lossCounter 为 1 时,它应该插入 1/(1+1) = 0.5 但它显示为“0”。我尝试了我所知道的一切,所以请给我一个提示。
【问题讨论】:
-
这与 Windows 窗体无关。您会在大约 5 行的控制台应用程序中看到完全相同的结果。提示:
winCounter和lossCounter都是整数。 1/(1+1) = 0 当使用整数运算时。 -
将股息翻倍。
-
我尝试将它保存在双重结果中,但它仍然显示“0”
-
您需要将等式的一部分转换为浮点类型在分配它或转换为字符串。
-
我编辑了添加双重结果的代码。它仍然显示“0”
标签: c# windows forms types windows-forms-designer