昨晚写了一个程序,使用了“+=”运算符,结果总不是我想要的,查了一晚没找到,今早才发现:
timeInterval = tpImP.staTime - imgPara[serial - 1].endTime;
imgPara[serial - 1].staTime -= timeInterval / 2 - 5;
imgPara[serial - 1].endTime += timeInterval / 2;
由于timeInterval总等于5,所以staTime与endTime总是相等,但是一个加一个减,并且前一个多减了5,怎么会相等呢?
后来反复测试发现,“-5”实际上变为了“+5”,所以才会相等:
imgPara[serial - 1].staTime -= timeInterval / 2 - 5;
等价于
imgPara[serial - 1].staTime = imgPara[serial - 1].staTime - (timeInterval / 2 - 5);
正确写法如下:
timeInterval = tpImP.staTime - imgPara[serial - 1].endTime;
imgPara[serial - 1].staTime -= timeInterval / 2 + 5;
imgPara[serial - 1].endTime += timeInterval / 2;