〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
1518 re(3):logscale での 固定/浮動小数点の表示の切替え |
2007/3/7(水)14:05 - OsN - inetgw1.sumitomometals.co.jp - 981 hit(s)
コメントありがとうございます。
竹の> これは OS の printf() の %g の仕様によるので、OS 依存 (正確には C のライ
竹の> ブラリ依存) です。コマンドラインで
竹の>
竹の> printf "%g\n" 0.0001
竹の>
竹の> とかしてみればわかると思います。だからソースの修正でも難しいんじゃないで
竹の> しょうか。
これは先の質問の前にやってみてたんですが、この結果が FreeBSD でも Linux でも
0.0001
だったので、gnuplot に起因する話なのか、と思ったのでした。説明が不十分でした。
竹の> # なお、「ソースの修正」という場合は、gnuplot のバージョンを示してもら
竹の> # わないと
そうですね。失礼しました。
4.0.0 か 4.2.0 でお願いします。(いずれの版でも同じ状況です。)
竹の> けど変ですね。%g は 10e-5 から e 表示になるのが普通 (K&R 第 2 版にもそう
竹の> 書いてある) で、Linux の man printf を見ても、%g に関する記述はそのように
竹の> 書いてあるよう
竹の>
竹の> http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
竹の>
竹の> で、それは FreeBSD や Solaris と変わらないんですが。
竹の>
竹の> FreeBSD, Solaris ではちゃんと 10e-5 からになってます。Linux は手元にない
竹の> のでわかりません。
man 3 printf から抜粋すると、
g,G Style e is used
if the exponent from its conversion is less than -4 or greater
than or equal to the precision. Trailing zeros are removed from
the fractional part of the result; a decimal point appears only
if it is followed by at least one digit.
と、全く同じ記述でした。(openSUSE Linux 10.1, FreeBSD 6.2)
gnuplot 内での 0.0001 が Linux では 0.0001000001 で FreeBSD では 0.000099999
ということであれば説明がつくような気もしますが、無根拠です。
竹の> ちなみに Linux の方で、
竹の>
竹の> set format y "% .5g"
竹の>
竹の> とかしてみるとどうなるでしょうか。
変化ありませんでした。
なお、FreeBSD の方でも変化ありません。
FreeBSD の 0.0001 を 1E-4 に変えたいので、set format y "% .4g" 等 やって
みたのですが、gnuplot , printf コマンド ともに変化ありません。
んー、自分の "%g" の理解も不十分なようなので、もう少し確認してみます。
(上記を書いている間に、松田さんからもコメントをいただいていました。
ありがとうございました。)
〔ツリー構成〕
┣【1518】 re(3):logscale での 固定/浮動小数点の表示の切替え 2007/3/7(水)14:05 OsN (2103) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.