float a = 1.0/3.0;

解决方案 »

  1.   

    float a = 1F/3F;

      

  2.   

    这是帮助:
    默认情况下,赋值运算符右侧的实数被视为 double。因此,应使用后缀 f 或 F 初始化浮点变量,例如:float x = 3.5F;
    如果在以上声明中不使用后缀,则将因为试图将一个 double 值存入 float 变量而得到一个编译错误。
      

  3.   

    晕,楼上都回答的是什么呀?楼主的意思是
    string s = "1/3";
    float f = foo(s); //得到f = 0.3333....我觉得只有自己写一个函数实行这个功能了。.net类库里应该是没有现成的。
      

  4.   

    对啊!就是 cppTrier(大三了,哪里可以去实习啊) 的意识!
    难道没有办法实现!
      

  5.   

    楼主自己写个函数好了
    用split把字符串分成 / 的前后两半,再分别转成float然后除一除不就好了。当然要考虑一下异常情况。
      

  6.   

    try this:using System;class MyTest{
      public static void Main(){
        string s = "1/3/3";
        //double d = Convert.ToDouble(s);  //cause System.FormatException
        //Console.WriteLine(d.ToString());
       try{
        Console.WriteLine(MyConvert(s));
       }catch(System.FormatException ex){
         Console.WriteLine(ex.Message);
       }catch(Exception ex){
         Console.WriteLine(ex.Message);
       }
      }
      static double MyConvert(string s){
        int index = s.IndexOf(@"/");
        if(index == -1)
          throw new Exception("Bad format");
        try{
        double u = Convert.ToDouble(s.Substring(0,index)),
               d = Convert.ToDouble(s.Substring(index + 1));
        return u/d;
        }catch(System.FormatException){
           throw;//rethrow it 
        }
      }
    }