A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 念念念念_、 中级黑马   /  2013-8-10 15:05  /  2511 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 念念念念_、 于 2013-8-11 13:19 编辑
  1. switch(comboBox1.SelectedIndex)
  2. {
  3. case 1:
  4. result= i1 + i2;
  5. break;
  6. case 2:
  7. result = i1 - i2;
  8. break;
  9. case 3:
  10. result = i1 * i2;
  11. break;
  12. case 4:
  13. if (i2 == 0)
  14. {
  15. MessageBox.Show("0不能为除数!");
  16. return;
  17. }
  18. result = i1 / i2;
  19. break;
  20. default:
  21. MessageBox.Show("无效的运算,请选择运算符");
  22. return;
  23. }
复制代码
如果要把除法运算的接结果有小数的把小数显示出来,该怎么改代码。比如1/3=0,要显示成0.33333

点评

顶~  发表于 2013-8-10 15:06

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

13 个回复

倒序浏览
你要把其中一个数先转换成浮点数之后,再进行运算。
回复 使用道具 举报

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 四则运算
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            string str1 = txtNumber1.Text;
            string str2 = txtNumber2.Text;
            int i1, i2;
            double i3;//将结果类型设置为double类型
            if (int.TryParse(str1, out i1) == false)
            {
                MessageBox.Show("文本框1中不是数字");
                return;
            }
            if (int.TryParse(str2, out i2) == false)
            {
                MessageBox.Show("文本框2中不是数字");
                return;
            }
            switch (cb操作符.SelectedIndex)
            {
                case 0://+
                    i3 = i1 + i2;
                    break;
                case 1://-
                    i3 = i1 - i2;
                    break;
                case 2://*
                    i3 = i1 * i2;
                    break;
                case 3:// /
                    if (i2 == 0)
                    {
                        MessageBox.Show("除数不能为0");
                        return;
                    }
                    i3 = i1*1.0 / i2;//将int类型的i1*0.1后转换为double类型
                    break;
                default:
                    throw new Exception("未知的操作符");
            }
             txtResult.Text = i3.ToString("F2");//F后面跟几就会输出多少位小数,小数位数不足时补0
        }
    }
}

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
小天 发表于 2013-8-10 15:34
using System;
using System.Collections.Generic;
using System.ComponentModel;

那么我又有一个问题,只有当后面有小数的时候才这样输出。没有的就不输出小数000又怎么实现
回复 使用道具 举报
本帖最后由 小天 于 2013-8-11 10:36 编辑

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 四则运算
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            string str1 = txtNumber1.Text;
            string str2 = txtNumber2.Text;
            int i1, i2;
            double i3=0;
            if (int.TryParse(str1, out i1) == false)
            {
                MessageBox.Show("文本框1中不是数字");
                return;
            }
            if (int.TryParse(str2, out i2) == false)
            {
                MessageBox.Show("文本框2中不是数字");
                return;
            }
            switch (cb操作符.SelectedIndex)
            {
                case -1:
                    MessageBox.Show("请选择运算符");//如果没有选择操作符会有提示
                    break;
                case 0://+
                    i3 = i1 + i2;
                    break;
                case 1://-
                    i3 = i1 - i2;
                    break;
                case 2://*
                    i3 = i1 * i2;
                    break;
                case 3:// /
                    if (i2 == 0)
                    {
                        MessageBox.Show("除数不能为0");
                        return;
                    }
                    i3 = i1*1.0 / i2;
                    break;
                default:
                    throw new Exception("未知的操作符");
            }
            string[] str = i3.ToString().Split('.');//用 . 做分隔符,声明一个数组并初始化
            if (str.Length >= 2)//如果数组长度小于2的话,说明小数是0,否则输出小数
            {
                txtResult.Text = i3.ToString("F2");
            }
            else
            {
                txtResult.Text = i3.ToString();
            }
        }
    }
}

回复 使用道具 举报
小天 发表于 2013-8-11 10:21
using System;
using System.Collections.Generic;
using System.ComponentModel;

谢谢你的解答!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;

  9. namespace Combox
  10. {
  11.     public partial class 简单计算器 : Form
  12.     {
  13.         public 简单计算器()
  14.         {
  15.             InitializeComponent();
  16.         }

  17.         private void button1_Click(object sender, EventArgs e)
  18.         {
  19.             string str1 = txtNumber1.Text.Trim();
  20.             string str2 = txtNumber2.Text.Trim();
  21.             double  i1, i2;     //定义成double类型,方便小数输入输出
  22.             double result;
  23.             if (double.TryParse(str1, out i1) == false || double.TryParse(str2, out i2) == false)
  24.             {
  25.                 MessageBox.Show("请输入数字","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
  26.                 return;
  27.             }
  28.             switch(comboBox1.SelectedIndex)
  29.             {
  30.                 case 1:  
  31.                    result= i1 + i2;
  32.                    break;
  33.                 case 2:
  34.                    result = i1 - i2;
  35.                    break;
  36.                 case 3:
  37.                    result = i1 * i2;
  38.                    break;
  39.                 case 4:
  40.                    if (i2 == 0)
  41.                    {
  42.                        MessageBox.Show("0不能为除数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  43.                        return;
  44.                    }
  45.                    result = i1 * 1.0 / i2;
  46.                    break;
  47.                 case 5:
  48.                    if (i2 == 0)
  49.                    {
  50.                        MessageBox.Show("0不能为除数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  51.                        return;
  52.                    }
  53.                    result = i1 % i2;
  54.                    break;
  55.                   
  56.                 default:
  57.                    MessageBox.Show("无效的运算,请选择运算符", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  58.                    return;
  59.             }
  60.            
  61.             txtResult.Text = Convert.ToString(result);
  62.         }

  63.         private void 简单计算器_Load(object sender, EventArgs e)
  64.         {
  65.             comboBox1.SelectedIndex = 0;   //默认显示请选择运算符

  66.         }

  67.       
  68.     }
  69. }
复制代码
这是我的代码,看看还有什么不足之处
回复 使用道具 举报
小天 中级黑马 2013-8-11 14:32:41
7#
这段代码你测试过吗?case 4和case 5怎么是一样的?
回复 使用道具 举报
小天 发表于 2013-8-11 14:32
这段代码你测试过吗?case 4和case 5怎么是一样的?

不是一样的呀。有一点判断是一样的。  一个  /   一个 %
回复 使用道具 举报
小天 中级黑马 2013-8-11 16:32:38
9#
你这个判断是什么意思 我没有看懂
回复 使用道具 举报
小天 发表于 2013-8-11 16:32
你这个判断是什么意思 我没有看懂

哪里不懂?就是除数不能为0呀
回复 使用道具 举报
相除的时候控制一下小数位数,就完美了
回复 使用道具 举报
本帖最后由 念念念念_、 于 2013-8-11 17:00 编辑
小天 发表于 2013-8-11 16:51
相除的时候控制一下小数位数,就完美了


但是我是这样想的,假如你输入2.2222+3.3333   那么怎么办????  所以我都定义成double类型。方便输出
相除的时候也是。按照实际输出。我觉得这样也好。控制输出也行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马