VC 中的问题~有关LONG
来源:百度知道 编辑:UC知道 时间:2024/09/26 16:27:33
block/(2.0*1024*1024)==(LONG)(block/(2.0*1024*1024))
其中block是LONG型~
当block取什么值时不成立~~~
谢谢啊~
其中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的整数倍,都不成立.