&size(24){''\EMround''}; 四捨五入をします。 #contents #br *定義されているスタイルファイル [#t8372b80] emathC.sty *書式 [#l57221dc] \EMround#1#2#3 実数 #1 を四捨五入で小数第 #2 位まで求めた結果を制御綴 #3 に返します。 *例 [#b80ede5b] **基本例 [#z0474621] #ref(EMround01.png) **0.1 刻みの目盛り [#t504bb4f] y軸に,0.1刻みの目盛りを入れるとします。 2進・10進換算などの誤差が累積されていきます。 #ref(EMround10.png) \EMround を用いて,四捨五入をする例です。 #ref(EMround11.png) *注意事項 [#notes] **オーバーフロー [#overflow] 条件によっては,~ ! Dimension too large.~ というエラーが発生することがあります。~ その場合は perl との連携機能をお使いください。一例です: #ref(overflow01.png) \EMround の内部処理手順は次のようになっています: 1) 1.732051 の小数点の位置を4桁下げます。17320.51 2) 0.5 を加えます。17321.01 3) 小数点以下を切り捨てます。17321 4) 小数点の位置を復元します。1.7321 以上の手順2) において,TeX がオーバーフローします。 (TeX の寸法では 16384pt が上限--16384pt はダメ--です。) 対策は,FPパッケージを使用,perlとの連携機能を利用します。~ 下の例は,perl との連携機能を利用しています(当然 emathPl.sty が必要です。) #ref(overflow02.png) ※ なお,emathC.sty v 0.56以降では,2)の処理を修正して整数計算で済ますようにしています。~ その結果,オーバーフローの発生上限は 2147483648(0x80000000) と緩和されました。 *関連事項 [#z88111b0] -[[\calcval>calcval#note]] RIGHT:&counter;