现在的位置: 首页 > 综合 > 正文

C# float 与零比较(南京某公司面试题)

2013年12月04日 ⁄ 综合 ⁄ 共 471字 ⁄ 字号 评论关闭

float x=0.111F;
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

抱歉!评论已关闭.