\EMround
\EMround*

四捨五入をします。
 

定義されているスタイルファイル

emathC.sty

書式

\EMround#1#2#3
  • 実数 #1 を四捨五入で小数第 #2 位まで求めた結果を制御綴 #3 に返します。
\EMround*#1#2
  • 実数 #1 を四捨五入で小数第 #2 位まで求めた結果を出力します。

基本例

EMround01.png
  • 結果を制御綴に取得するのではなく,その場で出力するには, アスタリスク付きのコマンド \EMround* を用います。
    EMround02.png
  • ただし,\EMround* を他のコマンドの引数として配置することは出来ない場合があります。
    そのときは,いったん \EMround で他の制御綴に値を代入してから用います。
    EMround03.png

0.1 刻みの目盛り

y軸に,0.1刻みの目盛りを入れるとします。
2進・10進換算などの誤差が累積されていきます。
EMround10.png
\EMround を用いて,四捨五入をする例です。
EMround11.png

注意事項

オーバーフロー

条件によっては,
  ! Dimension too large.
というエラーが発生することがあります。
その場合は perl との連携機能をお使いください。一例です:

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 が必要です。)

overflow02.png

※ なお,emathC.sty v 0.56以降では,2)の処理を修正して整数計算で済ますようにしています。
 その結果,オーバーフローの発生上限は 2147483648(0x80000000) と緩和されました。

関連事項


添付ファイル: fileEMround03.png 328件 [詳細] fileEMround02.png 366件 [詳細] fileoverflow02.png 465件 [詳細] fileoverflow01.png 446件 [詳細] fileEMround11.png 449件 [詳細] fileEMround10.png 503件 [詳細] fileEMround01.png 463件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-01-03 (火) 22:32:07 (2731d)