按书本上的编的计算器只能算整数,我想把它改进下,使计算器也能算小数,但小数点该怎么弄啊!

解决方案 »

  1.   

    就是 "."
    double d = Convert.ToDouble("3.14");
    d = d * 2;
    MessageBox.Show(Convert.ToString(d));
      

  2.   

    我的问题呢,是现在这个计算器只能整数与整数计算,如果输入(是通过点击Button控件上的数字输入的)小数该怎么弄?如果直接弄个小数点上去,就报错额……
      

  3.   

    http://www.google.com/#hl=zh-CN&source=hp&q=site:download.csdn.net+c%23%E8%AE%A1%E7%AE%97%E5%99%A8&oq=site:download.csdn.net+c%23%E8%AE%A1%E7%AE%97%E5%99%A8&aq=f&aqi=&aql=undefined&gs_sm=e&gs_upl=875l16844l0l31l26l0l15l0l0l656l1938l5-3l3&bav=on.2,or.r_gc.r_pw.&fp=25a3e86fbc8e0246&biw=1280&bih=828download.csdn.net/source/179632 download.csdn.net/source/528056download.csdn.net/source/2967492download.csdn.net/source/1234827download.csdn.net/source/3240866download.csdn.net/source/2854517download.csdn.net/source/2999620 download.csdn.net/source/3371039
      

  4.   

    这个程序里面,输入时是点控件输入的,然后只能整数,它是把输入的整数Todouble来计算。如果输入小数就报错额,小数点不知道怎么说明,也不知道与别的有冲突米有。
      

  5.   


    没有遇到冲突,软件开发就没有动力了。如果遇到冲突,自己不能先debug,跟别人说不清楚你是如何debug的,别人估计也无法更你一起开发。
      

  6.   

    没说清楚,估计你做得象win系1统那个计数器吧,参与运算的数是点击界面上的1,2,3...,现在你要点击入小数点吧
    每次点击界面上的数字(或小数点),在里面保存成字符串,计算前转化成数值型
    实现思路模拟:
    StringBuilder mysb = new StringBuilder();
    每点击一个数或符号,执行mysb.Append(buttonX.text);假如你的数或符号呈现在按钮上,当然了小数点一定是在英文下输入的那个
    例如mysb最后得到的是字符串"4.88",运算前用double.Parse(mysb)就可以转化成小数4.88了
    这里用StringBuilder是为了执行更快,当然你可以使用str=str+buttonX.text得到数字的字符串形式
      

  7.   

    double     这是数据类型的问题
    不是怎么显示的问题
      

  8.   

    e ......说不清楚,太菜。
    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;
            }
        }
    }
    这是书上的程序,属性方面的没打出来。我很多都不懂啊,别笑我哈。刚学表示...
      

  9.   

    int  是整数.
    double 是小数.
    把所有int 都变成double
      

  10.   

    直接输个点就行了,就像楼上的同志们说的,把int类型全部转换成double的,顺便验证只能输入数字和点
    在第一次输入点就不计算,全局有一个以上的点提示错误