应是浮点数问题,可设msgbox c-d
https://imgur.com/tkL2Wlt如取整数,可将变量c宣告为integer或long或以int(取整数)、round(四舍六入)、worksheetfunction.round(四舍五入)宣告为integer或long如遇小数位,进位方式同上述rounddouble类型的资料不一定都会有小数位的出现例如宣告变量c为double,指定为值1000时,就无小数位
https://imgur.com/rW6JTLm无宣告时,如有小数位时vba则会判断为double测试上可加上msgbox ab=2.4,会看到这里已产生浮点数错误
https://imgur.com/cm4tcwV不正确的结果,就从此处产生