其实你在计算的时候已经有溢出!
z=(long)(a*b); a*b 已经溢出然后再把它转换成Long的已经没有意义! 必须在计算前就转换,a,或b 都可以! 你可以这样做做实验, z=(long)a*b; //转换a 为long ;编译器自动把 a*b转换成long型的运算! z=a*(long)b; //同样的道理; 结果都是1234500.
发表时间:2003年7月1日18:34:20