| 2017/05/16(Tue) 14:42:33 編集(投稿者) 2017/05/16(Tue) 14:42:26 編集(投稿者)
魔界の仮面弁士さん、ご回答ありがとうございます!
> (1) JIS Z 8401:1999 の規則 A(偶数丸めとか銀行丸めとか五捨五入と呼ばれる動作) > (2) JIS Z 8401:1999 の規則 B(いわゆる四捨五入) > (3) 上記以外
やりたかった処理は、
(1) JIS Z 8401:1999 の規則 A(偶数丸めとか銀行丸めとか五捨五入と呼ばれる動作)
の処理です。
JisRound(12.25 , 3) → 12.2 になるのは理解できていたのですが、 JisRound(12.251, 3) → 12.3 になるのは、
> JIS丸めで例示されている 12.251 →12.3 は規則B(四捨五入)のことですね。
このような記載があったので、規則Aでは結果が「12.2」となるんじゃないかと 勝手に思い込んでしまい、質問させていただきました。
> 12.251 は、規則 A でも B でも「12.3」になります。 > 12.250 は、規則 A では「12.2」、規則 B では「12.3」です。
> 有効桁数 3 桁で丸めたときに「12.3」になる十進小数の範囲:
> 【規則 A (ToEven) の場合】 > 12.250000000000000000000000001D 以上 > 12.349999999999999999999999999D 以下
> 【規則 B (AwayFromZero) の場合】 > 12.250000000000000000000000000D 以上 > 12.349999999999999999999999999D 以下
> 有効桁数 3 桁で丸めたときに「12.2」になる十進小数の範囲:
> 【規則 A (ToEven) の場合】 > 12.150000000000000000000000000D 以上 > 12.250000000000000000000000000D 以下
> 【規則 B (AwayFromZero) の場合】 > 12.150000000000000000000000000D 以上 > 12.249999999999999999999999999D 以下
そもそも規則AのJIS丸めの仕様が把握できていませんでした。 テストを再度実行し、上記のようになる事を確認させていただきました。
今回の件で、丸め処理がたくさんあるという事が分かり、 とても参考になりました。 どうもありがとうございました。
|