SA0020:REAL変数への切り捨てられた値の割り当ての可能性
データ型変数の切り捨てられた値を含む可能性のある整数変数の演算を検出します REAL
割り当てられています。
理由:整数計算の結果が次の場合、静的コード分析でエラーが発生します REAL
- また LREAL
-変数が割り当てられます。プログラマーは、そのような割り当ての解釈が正しくない可能性があることに注意する必要があります。lrealvar := dintvar1 * dintvar2
。
からの値の範囲から LREAL
のそれよりも大きい DINT
、計算の結果はいずれにせよ LREAL
表示することができます。そうではありません。プロセッサは、乗算の結果を整数として計算してから、結果を再キャストします LREAL
。整数計算のオーバーフローは失われます。問題を回避したい場合は、請求書はすでに次のようになっている必要があります REAL
-行われた手術:lreal_var := TO_LREAL(dintvar1) * TO_LREAL(dintvar2)
重要性:高い
例 32. 例
PROGRAM PLC_PRG VAR rX : LREAL; dI : DINT; END_VAR
rX := dI * dI // SA0020 rX := TO_LREAL(dI) * TO_LREAL(dI) //no message
での出力 メッセージ ビュー:
SA0020: 切り捨てられた値が REAL 変数に代入されている可能性があります