- - PR -
[非 .net] VBAで機種依存文字のチェック
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-12 18:33
るぱんです。
以前これで気になって自分で調べてたんですけどね・・・。 1.小数点以下の数だけ*10で掛け算して加減乗除してDoubleに突っ込みなおしてから、 Doubleで計算! 2.CStrでString型に突っ込みなおして四捨五入!(Round使えよ・・・。:自爆) 3.CDblで元に戻してから小数点に直す! これでも無理か!?(汗 でも、出来たとして、入力のデータをかなり絞らないときつそうですよね。(笑) | ||||||||||||
|
投稿日時: 2004-02-13 09:25
はにまるです。
Clusterさんごめんさない。 スレッドと違う話題になってしまい...
ぢゃん♪さんの言われている内容は、 「システム利用者と仕様で決定する話」ではありませんか? 割算や掛算により端数をどうするかは、開発側で勝手に決める話ではありません。 仕様として明記し、端数処理結果は、開発者も設計者も利用者も検証する必要があります。 それに対し、企業文化により異なるかもしれませんが、 浮動小数等のコンピュータ固有の問題は、開発者、設計者で解決する問題です。 浮動小数変数を禁止した経緯を記述します。 「浮動小数変数型」は、科学技術用に決めれらたバイト数で広範囲の数字を扱う為に 考えられたデータ型です。ただ、構成上、確実な数値計算が出来ない恐れがあります。 よって、 業務アプリケーションでは、「浮動小数型」を利用する事自体が不適切であり、 小数を利用する場合は、「固定小数型」を使うべきと考えているからです。 # 特例はあるでしょうが、今の所、自分の経験では必要になった例はありません。 私が技術者として問題視したのは、 業務アプリケーションでは、「浮動小数型」を使うなという 基本的な教育をしていない事に対してです。 # 無論、今いる会社のメンバーもしかりですが... | ||||||||||||
|
投稿日時: 2004-02-13 10:15
こんにちわ。
えと、初心者の方などがここを見て勘違いされるといけないと思うので^^; 固定小数型を使っても誤差がなくなる訳ではありません。 「誤差を最小限に抑えることができる」だけです・・ | ||||||||||||
|
投稿日時: 2004-02-13 10:16
さらに話題がずれていく
危険性を認識しながら使うのではなく、なんとなく使うから怖いんですよね、そういうのは。 浮動小数点の危険性は、「浮動小数点数の精度の低下」から「IEEE 浮動小数点表現」へと辿ると、出てくるんですけどね……ほとんどの人が見てないだろうけど……。 (↑これはC++ですが、どの言語も同じ。) 確かに誰かが教えないと、気にしてもらえないでしょうね……怖い怖い #昔酷い目にあって(他人のコード保守でC言語のfloatに遭遇して)以来、実数型は大嫌いです | ||||||||||||
|
投稿日時: 2004-02-13 10:33
NAL-6295です。
固定小数点だから小数点以下の誤差が出ないというわけではなく、 VB6のCurrencyの実装がそうなっているだけですね。 どんな型だろうが、下位ビットは上位ビットの2分の1でしか無いので小数点以下は近似値表現 しか出来ません。 128,64,32,16,8,4,2,1,0.5,0.25,0.125,0.0625・・・・ #制御系とかだと小数点以下の計算に、多倍精度整数型を利用して小数点桁分、 #単位を大きくして処理してました。確かに実数型は使いませんね。 #あ、昔、業務系をC++で組んだとき、Doubleの誤差を吸収するクラスを再定義 #して使ってたな。 #と、話題を更にずらしてすいません。 | ||||||||||||
|
投稿日時: 2004-02-13 10:37
その言い方も違うような気がしますけど...。 固定小数点と浮動小数点で、どっちが誤差が小さいかといったら(有効桁数が同じなら)浮動小数点の方じゃないですか? 十進固定小数点と二進浮動小数点とを比べた場合、十進固定小数点の方が、誤差の出方が、一般的な人間の予想に合致しているとは思いますけど。 | ||||||||||||
|
投稿日時: 2004-02-13 10:47
それは、演算の「精度」から見た場合ですよね。もちろん浮動小数点の方が 精度は高いです。 そもそも、精度が必要な場合に固定小数は使用しないと思います。 誤差と言っているのは、計算結果が開発者の意図している結果とどれだけ差があるか と言うことかと。(うーん、うまい言い方が思いつかないです^^;) | ||||||||||||
|
投稿日時: 2004-02-13 10:48
話が食い違う理由が分かった気がする。 りばぁさん、NAL-6295さんの固定小数型は、 特定ビット以下、小数を表す形式の変数では無いですか? 私の言っている固定小数型は 内部は整数のみ、計算や利用時には10のべき乗計算をする形式の方です。
そうですね。最低限、判っている範囲だけでも 後輩等に伝えて行かないと行けないですね。 「基礎知識の無い技術者は、短命になると」本に記述されていました。 # って自分もですが.. ^^; |