描述:
在S7-SCL中进行以下指令编程:
Quotient := Dividend / Divisor;
此处商为实数值而被除数和除数是整数值。
编译器没有输出警告。可是,比如说程序运行后商中是 0 而不是1/3。指令“Quotient := Dividend / Divisor”在S7-SCL中由编译器按如下进行编译:
Quotient := INT_TO_REAL(Dividend / Divisor);
随之而来的是,结果中不会出现小数位,因为整数首先被除,然后格式才被转换。
补救措施:
如果先将整数转换为实数再执行除法,就会得到预期的结果:
Quotient:= INT_TO_REAL(Dividend)/(INT_TO_REAL(Divisor)
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc339399.html