/*****以下是我用try+catch做的一个简单的format 计算器   关键在switch..default 那里
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 checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {        }        private void Form1_Load(object sender, EventArgs e)
        {        }        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                float a = int.Parse(bjk1.Text);//声明三个变量 并类型转化成int型
                float b = int.Parse(bjk2.Text);//
                float c;
                switch (choice.Text)              //做选择
                {
                    case "+":
                        c = a + b;
                        break;
                    case "-":
                        c = a - b;
                        break;
                    case "*":
                        c = a * b;
                        break;
                    case "/":
                        c = a / b;
                        break;
                    default:               //如何让这里变成空字符 为空就行 而不是显示0                        c = 0.00F;
                        break;
                }                bjk3.Text = c.ToString();
            }/*************格式错误***********************/
            catch (FormatException nub1)
            {
                MessageBox.Show(nub1.Message);
                return;
            }
  /***********数据溢出***********************/            catch (OverflowException nub2)
            {
                MessageBox.Show(nub2.Message);
                return;
            } /*************被0除*********************/
            catch (DivideByZeroException nub3)
            {
                MessageBox.Show(nub3.Message);
                return;
            }/*************其它可能*********************/            catch (Exception nub4)
            {
                MessageBox.Show(nub4.Message);
                return;
            }
        }
    }
}
  

解决方案 »

  1.   

    float? c = null;//可以为Null,但是float类型后面得加?
      

  2.   

    Quote: 引用 2 楼 guwei4037 的回复:

    我把float 改成了int 型  但是这个让我不太懂了
      

  3.   

    int float 这些都不是引用类型
    声明的时候就会给默认值~
      

  4.   


    这样:int? a = null;//加个问号
      

  5.   

    float值值类型,不能赋值成null.
      

  6.   


    看msdn,float?使用.net 2.0开始有的,lz用的哪个版本?具体用法参考msdn:
    Nullable<T> Structure
    http://msdn.microsoft.com/en-us/library/b3h38hb0.aspxfloat?这种叫做语法糖,实际上声明另一个Nullable<float>类型的变量。
      

  7.   

           float a = int.Parse(bjk1.Text);//声明三个变量 并类型转化成int型
                     float b = int.Parse(bjk2.Text);//
                     float c;
     为什么a,b,c 不直接定义为字符串啊兄弟?
      

  8.   

    看了你的代码我建议你如果想达到你的要求直接定义C 为字符串就可以了!将A+B运算完成了 再转换为字符串赋值给C啊!
      

  9.   

    if(tbj1.text!="")
    {
    float a = int.Parse(bjk1.Text);//声明三个变量 并类型转化成int
    }else{处理为空 }
    if(tbj1.text!="")
    {
    float a = int.Parse(bjk2.Text);//声明三个变量 并类型转化成int
    }else{处理为空 }
    if(choice.Text!="")
    {
        switch (choice.Text)              //做选择
                     {
                         case "+":
                             c = a + b;
                             break;
                         case "-":
                             c = a - b;
                             break;
                         case "*":
                             c = a * b;
                             break;
                         case "/":
                             c = a / b;
                             break;
                         default:               //如何让这里变成空字符 为空就行 而不是显示0                        c = 0.00F;
                             break;
                     }
     }
      

  10.   

    bool isNull  = false;
    .
    .
    .
    default:
    isNull = true;
    break;
    if (isNull)
    {
      bjk3.Text = "";  
    } else
    {
      bjk3.Text = c.toSting();
    }