丸め
桁数が多い数値
7 桁超のデータを入力すると、7 桁 (実際には 2 進数なので、"約" 7 桁) のみが格納されるため、実際に入力したとおりには格納されません。たとえば、データ テーブルに 99.2492427 の値を入力した場合、99.249250 に切り上げられます。Prism では単一精度で数値が記憶されるため、約 7 桁の有効数字しか格納されません。これより多いと、Prism で四捨五入されます。小数点と 2 進数間で変換を行うと、丸めが予想どおりに行われないことがあります。
7 桁未満の数値
丸めの問題
丸めは次の桁が 5 でない限りは明快です。2.5 を 3 に切り上げるか、2 に切り下げるかが問題となります。両方とも同等に正確なので、この問題に対処するために多くの方法が提案されています。Wikipedia の丸めに関する記事では、多くの提案が挙げられています。
数値のコンピューターへの入力で複雑度が増します。コンピューターでは数値が 2 進数 として格納されるため、10 進数との変換が必要となります。多くの値、これについても丸めが必要となります。たとえば、0.055 の数値を入力し、Prism で小数点以下 2 桁までの値を表示するように指定するとします。次の 3 桁目の数値は 5 です。一般的な規則の 1 つでは、次の値が 5 である場合常に切り上げとなるため、表示される値は 0.06 と予想されます。しかし、コンピューターでは 0.055 という値は格納できません。代わりに、すべての値が 2 進数に変換されるため、この値は 0.0549999 として格納されます。この値を小数点以下 2 桁の位置で丸める場合、次の (3 桁目) の数値は 4 です。このため、Prism Windows版では切り下げが行われ、0.05 と表示されます。Prism Mac版では、切り上げるため、この場合0.06と表示します。
Prism での丸め処理方法
Prism ではデフォルトで、入力したすべての値を表示し、小数点以下の桁数もできるだけ含まれるようにします。より少ない桁数を表示するには、「数値表示形式」[Format Numbers]ダイアログを使用してください。分析結果も、同様に丸めることができます。Prismの丸めの方法は、不規則ように見えます。
Prism では、端数が 5 である場合の処理があまり規則的ではありません。たとえば、0.25 は 0.3 に切り上げられますが、0.45 は 0.4 に切り捨てられます。5 を切り上げるか切り捨てるかは任意のため、この場合両方とも正しい処理です。
Prism Windows では実数の表示に C 関数 sprintf() が使用されます。この関数の丸め処理については、Microsoft knowledgebase の記事を参照してください。Mac Xcode コンパイラで使用されている関数も同様のようですが、同じではありません。
Microsoft Excel は異なっている点に注意してください。このプログラムでは、計算がワークシート内で行われる場合と、マクロによって行われる場合とで異なる2 つの方法が使用されています。
ほとんどの場合、問題にならない
Prism データ テーブルでの表示は、そのテーブルを表示するときのみ問題になります。注意:
| • | データ テーブルで表示される桁数を減らしても、Prism でのデータの分析またはグラフ作成には影響しません。常に、分析は入力したすべての桁数に基づいて行われます (Prism で格納可能である最大 7 桁まで)。 |
| • | Prism ファイル (.PZF または .PZFX として) を保存するときは入力したすべての桁数 (最大 7 桁まで) が保存されるため、保存の際に値が切り捨てられることはありません。 |
| • | Prism データ テーブルからデータをクリップボードにコピーするときは、テーブルで表示されている桁数のみでなく、入力した値がコピーされます。 |
| • | データ テーブルを .TXT または .CSV ファイルとしてエクスポートするときは、テーブルで表示されている桁数のみでなく、入力した桁数がエクスポートされます。 |