按书本上的编的计算器只能算整数,我想把它改进下,使计算器也能算小数,但小数点该怎么弄啊!
解决方案 »
- 为什么我获得listview中的值时会报错??
- C# 怎么来操作dbf数据文件?odbc是什么东西?
- 为什么我的程序发给别人不行呢?
- C#怎么列出非系统盘如:D:,E:,F:等?
- 如何在picturebox中建立一个可移动的矩形选框,并在另一个picturebox中显示矩形选框所选原图形部分?在线跪求
- 要怎么才能读出表中的行和列
- DataGrid与GridView,DataList分页问题
- winform中,如何向Sql Server中写入文件,并读取???
- Adapter更新视图可以吗?
- 如何在C#中设置一个按钮为默认按钮呢?属性isDefault是受保护的呀
- 求一个简单的算法
- 怎么取comboBox的value值,用comboBox1.SelectedValue取老是说不能将对象转为字符
double d = Convert.ToDouble("3.14");
d = d * 2;
MessageBox.Show(Convert.ToString(d));
没有遇到冲突,软件开发就没有动力了。如果遇到冲突,自己不能先debug,跟别人说不清楚你是如何debug的,别人估计也无法更你一起开发。
每次点击界面上的数字(或小数点),在里面保存成字符串,计算前转化成数值型
实现思路模拟:
StringBuilder mysb = new StringBuilder();
每点击一个数或符号,执行mysb.Append(buttonX.text);假如你的数或符号呈现在按钮上,当然了小数点一定是在英文下输入的那个
例如mysb最后得到的是字符串"4.88",运算前用double.Parse(mysb)就可以转化成小数4.88了
这里用StringBuilder是为了执行更快,当然你可以使用str=str+buttonX.text得到数字的字符串形式
不是怎么显示的问题
namespace 计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button7_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void btn_clear_Click(object sender, EventArgs e)
{
txt_result.Text = " ";
} private void btn_result_click(object sender, EventArgs e)
{
double d_result;
string s_txt = txt_result.Text;
int space=s_txt .IndexOf (' ');
string s1=s_txt .Substring (0,space );
char operation=Convert.ToChar (s_txt .Substring ((space+1),1));
string s2=s_txt .Substring (space +3);
double arg1=Convert.ToDouble (s1);
double arg2=Convert.ToDouble (s2);
switch(operation )
{
case '+':
d_result =arg1 +arg2 ;break ;
case '-':
d_result =arg1-arg2 ;break;
case '*':
d_result =arg1 *arg2 ;break;
case '/':
if(arg2 ==0)
{
throw new ApplicationException ();
}
else
{
d_result =arg1 /arg2 ;
}
break ;
default :
throw new ApplicationException ();
}
txt_result .Text =d_result .ToString ();
} private void btn_add_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text = txt_result.Text + " " + btn.Text + " ";
} private void buttun0_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void Form1_Load(object sender, EventArgs e)
{ } private void btn_sub_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text = txt_result.Text + " " + btn.Text + " ";
} private void btn_mul_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text = txt_result.Text + " " + btn.Text + " ";
} private void btn_div_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text = txt_result.Text + " " + btn.Text + " ";
} private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button2_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button3_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button5_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button6_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button9_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button10_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
} private void button11_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txt_result.Text += btn.Text;
}
}
}
这是书上的程序,属性方面的没打出来。我很多都不懂啊,别笑我哈。刚学表示...
double 是小数.
把所有int 都变成double
在第一次输入点就不计算,全局有一个以上的点提示错误