[#35937] WeRDS (the Weekly Ruby-Doc Summary) 2002-09-13 — maili31s@... (SugHimsi == SUGIHARA Hiroshi)

すぎむし。

14 messages 2002/09/16
[#36004] WeRDS (the Weekly Ruby-Doc Summary) 2002-09-22 — maili31s@... (SugHimsi == SUGIHARA Hiroshi) 2002/09/25

すぎむし%くどいようですが、うるさければ謹慎しますので。

[#35940] 9.2 の数値が 9.199999999999999 — "Inoue" <rubyist@...1.117.ne.jp>

井上です。

16 messages 2002/09/17
[#35941] Re: 9.2 の数値が 9.199999999999999 — matz@... (Yukihiro Matsumoto) 2002/09/17

まつもと ゆきひろです

[#35942] Re: 9.2 の数値が 9.199999999999999 — Fujimaru Hiroyasu <f-hiro@...> 2002/09/17

 藤丸です。

[#35977] [ANN] Exerb 2.1.0 — Yuya Kato <yuya-ml@4th.to>

Yuyaです。

18 messages 2002/09/20
[#35978] Cookie — 金光雅夫 (KANEMITSU Masao) <masao-k@...> 2002/09/20

金光です。どもっ (_ _)

[#35979] Re: Cookie — rio-t@... 2002/09/20

こんにちは、高石です。

[#35980] Re: Cookie — 金光雅夫 (KANEMITSU Masao) <masao-k@...> 2002/09/20

金光です。どもっ。

[ruby-list:35953] Re: 指数表記のフォーマットの制御方法

From: nobu.nakada@...
Date: 2002-09-17 11:44:48 UTC
List: ruby-list #35953
なかだです。

At Tue, 17 Sep 2002 19:46:04 +0900,
岩崎 弘孝 wrote:
>  > 有効桁数を増やしたいだけなら、%15.8eにするとか。指数部分の桁数
>  > 指定というのは、printf()の仕様にはなかったような気がしますが。
> 
> 確かにそうなんですが、書き出したものを別のソフトで読み出すので
> 同じフォーマット(15桁の制限)で処理をしたいのです。
> 
> -1.23456789e+01
> というデータは
> %15.7eの時 '-1.2345679e+001'
> %15.8eの時 '-1.23456789e+001'
> となり15文字内に納まらないので16文字になります。


たぶん、長過ぎたら削るというのが一番手っ取り早いんじゃないでしょ
うか。

  s = sprintf("%15.8e", x)
  s.sub!(/e\+0{0,#{s.size-15}}/, 'e+') if s.size > 15

これでさらにはみ出す、つまり1e100以上の場合は精度を下げる以外に
はないと思います。

> あくまで
> %15.7eの時 '-1.23456789e+01'
> 
> と出て欲しいのですが、方法はないのでしょうか?

精度を7桁と指定している以上、小数点以下が8桁以上になることはあ
りません。

しかし、指数部を常に3桁以上にするというのは珍しい処理系ですね。
SUSv2なんかでも最小2桁しか要求してないのに。

http://www.opengroup.org/onlinepubs/007908799/xsh/fprintf.html

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread