C# float 与零比较(南京某公司面试题)
写出float类型与零比较的判断语句
float x=0.111F;
if(x>=-float.Epsilon&&x<=float.Epsilon)
return "0";
else
return "不等于零";
if(x>=-float.Epsilon&&x<=float.Epsilon)
return "0";
else
return "不等于零";
c#中浮点变量的赋值
在C#里面给float变量赋值时,有一种特殊情况;语句
float y = 5.2; // 不会被编译!
将产生一个编译器错误,因为类似3.5这样带有小数部分的数字常量会被C#认为是拥有更高精度的double值,所以编译器将因精度损失而拒绝执行。要进行这样的赋值,必须显式地把浮点常量转换为float值:
float y = (float) 3.5; // 没问题;进行了转换。
或者,也可以使用后缀F,强制编译器把赋值语句右边的常量看作浮点值:
float y = 3.5F; // 可以,我们指示了该常量
// 应被当作浮点值处理。
还有一种选择是直接使用double变量而不用float变量来表示浮点数。在SRS应用中,无论何时要声明浮点变量,我们都会使用double来代替,这样可以避免类型转换操作。
一个好方法:声明浮点变量就用double