VC 中的问题~有关LONG

来源:百度知道 编辑:UC知道 时间:2024/09/26 16:27:33
block/(2.0*1024*1024)==(LONG)(block/(2.0*1024*1024))

其中block是LONG型~

当block取什么值时不成立~~~
谢谢啊~

才看清楚
前面的是double型 后面是整形
这样的话 只要前面的数据得到的结果是整形 也就是没小数就ok

那么block 只要是 2M(即2.0*1024*1024) 的倍数就是成立的

这是一个判断关系表达式真假的问题,可知表达式2.0*1024*1024的值为实型,所以表达式block/(2.0*1024*1024)相当于一个整形去除以一个实型小数,值为实型;而==右边的表达式(long)(block/(2.0*1024*1024)是一个强制类型转换符,使表达式的值由实型小数转换为长整型整数。所以关系运算符==两边表达式的值是2种不同的类型, 所以不论block取什么值都不成立。

虽然左边的浮点型,右边的整型,但是编译器会在内部隐式转换成double型来比较的.因此,只要不是1024*1024*2的整数倍,都不成立.