[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>

度々オブジェクト指向についての質問ですいません。

17 messages 2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について — Yukihiro Matsumoto <matz@...> 2008/01/04

まつもと ゆきひろです

[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>

はじめまして、青木ルイスと申します、

14 messages 2008/01/12
[#44479] ファイル出力時のprintについて — m-hatake@... 2008/01/16

畠山と申します。

[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>

山崎(ゆ)です。

14 messages 2008/01/16

[ruby-list:44488] Re: format %g の丸めについて

From: 山崎雄介 <y-yamasaki@...>
Date: 2008-01-16 12:45:25 UTC
List: ruby-list #44488
山崎(ゆ)です。

ごとけんさん、アドバイスありがとうございます。

> 必ず指数表記にするなら %e で指定できます。
たとえばこういうケースではGのようになって欲しいんですよね。。。
format %.2E 8100 => 8.10E+003
format %.2G 8100 => 8.1E+003

Eでは少数部の桁数が固定になってしまうので、有効数字2桁のところが3桁に見えてしま
います。

> > (2) 一般の四捨五入とは微妙に違う。
> >   format('%.2G', 0.00000815) => "8.1E-006"  # "8.2E-006"になってほしい
> >   format('%.2G', 0.000008151) => "8.2E-006"
> 
> それは10進法と2進法の違いのせいです。
> リテラル 0.00000815 で表される Float は有理数 815/100000000 より
> わずかに小さいのです。
> 
> format("%.16e", 0.00000815)
>     ==>"8.1499999999999999e-06"

なるほど。普通の方法で厳密に計算するのは難しそうですね。
というか、コンピュータで計算する以上、誤差を含んでしまうわけだからサポートのしよ
うがないですよね。

_______________________
Yusuke Yamasaki <y-yamasaki@saeilo.co.jp>


In This Thread