123,456,789.12345の数値に適してるデータ型は何?


ややや  2005-12-13 03:49:49  No: 128824

123,456,789.12345に一番適してるデータ型ってなにになるんですか?
理由もお願いします。


Danti  2005-12-13 04:15:59  No: 128825

>123,456,789.12345に一番適してるデータ型ってなにになるんですか?
一概には言えないと思うけど、stringでしょうか。


ややや  2005-12-13 18:12:08  No: 128826

でも数値ですよ。


すがり  2005-12-13 18:27:53  No: 128827

数値?どうみても文字では?
Dantiさんのおっしゃるとおりstringでよいでしょう。
それとも123456789.12345の金額フォーマットということ?


Dental  2005-12-13 19:08:43  No: 128828

さるべーじさんの旧・旧・猿頁より。

http://homepage3.nifty.com/salv/qsal/hp-old/03pc/qvb/03vbpg005.htm
http://homepage3.nifty.com/salv/qsal/hp-old/03pc/qvb/03vbpg006.htm

> Q. Currency型よりも大きい範囲の数値を、精度よく計算したい。  
> A. いくらでも方法はある。たとえば、String型を使うこともできる。  

つまるところ、Stringで処理する方法だってあるわけで。


名無し  2005-12-13 19:25:41  No: 128829

###,###,###.###ってFormatを調べてみるといいかもね。
型は変換すればいい。


ややや  2005-12-13 20:46:37  No: 128830

1億2千3百45万6,789.12345ですよ。
Currencyは小数部が4桁しかないのでだめと思って
SingleかDoubleかで悩んでたんですけど
SingleとDoubleを使ったらまずいんですか?


ややや  2005-12-13 20:49:04  No: 128831

1億2千3百45万6,789.12345ですよ。
Currencyは小数部が4桁しかないのでだめと思って
SingleかDoubleかで悩んでたんですけど
SingleとDoubleを使ったらまずいんですか?


KG  2005-12-13 21:19:49  No: 128832

>SingleかDoubleかで悩んでたんですけど
自分の考えは最初に述べた方が誤解は生まれないかと思います。

>123,456,789.12345
これだけをみるならばカンマを含んでいるので数値とはとれません
文字列と勘違いされてもしょうがないでしょう

あとは小数部の精度に重きをおくかどうかで変わってくるのでは
ないでしょうか。


ややや  2005-12-13 22:31:47  No: 128833

1億2千3百45万6,789.12345の数値で小数部の精度は多少誤差があっていいというときはどの型使えばいいですか?


葉月α  2005-12-13 22:39:52  No: 128834

1億とか言ってる時点でそれ以上の仕様がわからないので
不測の事態を考えるとDoubleでいいんじゃない?と述べてしまう自分は
素人かな・・・


sarube-ji  2005-12-14 00:35:47  No: 128835

「適している」や「多少誤差があっていい」という言い回しは、
実はかなり主観的な表現です。
責任を持ってプログラムを組む場合は、こういう言い回しではなく、
具体的な精度条件を仕様として決めます。

ここをはっきりさせていないため、回答をつけてくださる方によって
ブレが発生しているんだと思いますよ。

で、お尋ねの「123,456,789.12345」ですが、どんな用途に使うかによって
どの型が適切なのかは変わります。

たとえば3Dゲームを作る時などは、
「だいたいの座標がわかればいい」 & 「なるべく高速に演算したい」はずなので、
Singleが適切ということになります。
Doubleまで使わなければならないような座標値を持つと、
計算に時間がかかり表示される結果はさほど変わらないという
デメリットしかありませんので、スケールを見直すなど
極力Single型以外を使わないように工夫するのが普通です。

たとえば株や貯金預金の金額(特に利子)を計算するのであれば、
小数点以下の有効桁数とそれ以下の数値の丸め方法を厳密に設計します。
「小数部の有効桁は3、それ以下の値は四捨五入」などですね。
この場合は整数部まで含めて誤差が発生する可能性のある
Double・Singleは絶対に使いません。普通はCurrencyです。

演算結果でグラフを書く場合。
実は私これ、昔Doubleでやったことがありまして。
すると0.1などグラフの目盛り上ぴったりになる値で誤差が発生し
描線が1ドット上下してしまう場合があり、
非常に読み取りにくいとクレームをいただきました。
今考えると、内部的に1万倍した整数値で保持しておけば
誤差なんか出なかったのになーと思いますが、
当時はそれがわからず、大変な苦労の上ギブアップした覚えがあります。(T−T)

これは、描画目的であっても誤差を許しちゃいけないケースですね。

---

さて、やややさんはどんな目的で、どこまでの最大値と誤差を許容する値を
扱いたいんでしょうか。

このへんを一度はっきりさせてみた方がいいと思いますよ。


  2005-12-14 03:36:28  No: 128836

最近の掲示板の兆候:
微妙に会話のキャッチボールができていない場合は、スレが長寿になるが、最終的には逆ギレして終了。
最後には掲示板の用途を論ずる座談になってしぼんでいきます。

…さて、String型でも十分だと思うのに、それを突っぱねる1さんはどうなるのでしょうか…


名前なし  2005-12-14 19:06:48  No: 128837

こうなります。

>○○型でいいんじゃないでしょうか?
>でも、XXですよ?

>では△△型でいいんじゃないでしょうか?
>でも、XXですよ?

以降繰り返し、
建設的な意見で突っぱねない限り、延々と・・・。


saku  2005-12-14 20:38:10  No: 128838

>123,456,789.12345に一番適してるデータ型ってなにになるんですか?
これを調べて最終的に何がしたいの?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加