float a = 1.0/3.0;
解决方案 »
- 为什么第一次连接数据库特别慢
- 怎样将枚举类型绑定到GridView列? 数据库存int型,GridView中显示枚举名称。
- linux的utf文件到windows的web访问中文乱码,请看清题答
- 如何在listview里实现单选
- 字符串转换为int
- C#里有没有能读用Windows用户名和密码及其它用户信息的API
- 多线程同步问题
- C#不能识别Sql Server中的中文列名吗?
- 有一A.dll文件,在没有源代码的前提下,如何对A.dll进行延迟签名。。。。
- c# 员工关系类 (分数送上)
- 怎么样做一个象QQ一样的在任务栏中显示图标当有信息时候闪动?
- 关于在组建服务工具中注册COM+(基于.NET的程序集),高手请进
汗
默认情况下,赋值运算符右侧的实数被视为 double。因此,应使用后缀 f 或 F 初始化浮点变量,例如:float x = 3.5F;
如果在以上声明中不使用后缀,则将因为试图将一个 double 值存入 float 变量而得到一个编译错误。
string s = "1/3";
float f = foo(s); //得到f = 0.3333....我觉得只有自己写一个函数实行这个功能了。.net类库里应该是没有现成的。
难道没有办法实现!
用split把字符串分成 / 的前后两半,再分别转成float然后除一除不就好了。当然要考虑一下异常情况。
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
}
}
}