異なるデータ形式を持つ項目との相互作用を含むプログラムをコーディングすると、 コンパイラーがそれらの項目を、一時的 (比較および算術演算の場合) に、 あるいは永続的 (MOVE、COMPUTE、 またはその他の算術ステートメント内の受け取り側への割り当ての場合) に変換します。
可能であれば、コンパイラーは、直接的な 1 桁ずつの移動ではなく、数値を保持する移動を実行します。
変換には、通常、追加のストレージと処理時間が必要とされます。これは、演算が実行される前に、データが内部作業域に移動され、変換されるためです。さらに、結果を作業域に戻し、再度変換することが必要な場合もあります。
固定小数点データ形式 (外部 10 進数、パック 10 進数、または 2 進数) 間の変換は、ターゲット・フィールドがソース・オペランドのすべての桁を含むことができれば、精度が失われることなく完了します。
固定小数点データ形式と浮動小数点データ形式 (短精度浮動小数点、長精度浮動小数点、または外部浮動小数点) 間の変換では、精度が失われる可能性があります。 このような変換は、固定小数点と浮動小数点の両方のオペランドが混在する算術計算時に起こります。