- - PR -
小数を四捨五入し、小数で表示したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-14 14:34
因みに、負数の場合はInt関数では四捨五入されないと思います。
投稿の例に記載されていた直値を使った場合、 Dim Res as Double Res = CType(12.563.ToString("0.00"), Double) Res = CType(-5.688012.ToString("0.00"), Double) でそれぞれ12.56、-5.69が取得出来ます。 | ||||
|
投稿日時: 2005-02-14 15:45
先に貼られた... 自分のサイトなのに... かなり orz いぢけてやるぅ (w _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-02-14 16:07
けっこう誤差がでるのでDoubleよりDecimalをつかったほうがいいと思いますよ
| ||||
|
投稿日時: 2005-02-14 16:07
>因みに、負数の場合はInt関数では四捨五入されないと思います。
Int関数が駄目ならFix関数(参考:msdn Int 関数、Fix 関数) じゃんぬねっとさんのサンプルではばっちし対処されてますね ところで、私今までずっと四捨五入にFormat関数使ってたので、ちょっと不安になって以下のコードを動かしてみたのですが…
結果は以下の通り。ちなみにOSはWin2Kです。 --結果-- 4.44 4.45 4.45 4.45 -4.44 -4.45 -4.45 -4.45 -------- がりうむさんのリンク先にこんな記事もありましたが、Win2Kだと期待した数値が返ってきます。少なくともMath.Roundとは挙動が違うことは確認できてるわけですが、全ての数値に関して検証したわけではないので未だにちょっと不安 これって、SP未適用のWinXP以外では文字通りの「四捨五入」になってるんでしょうか?自分でも探してみたんですが、確証となるような記事は見つけられなくて…もしご存知でしたらご教授ください。m(_ _)m | ||||
|
投稿日時: 2005-02-14 17:00
そういえば、decimal 使ったことないですね (1度も) 仕事でも使ったためしがないので、存在を忘れかけてました。 128 ビットなのは知ってるんですけども... 4.1.7 decimal 型 # オーバーロードにて、出番あげても良いかも... (^-^*) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-02-14 21:53
Operaだと重なって読めない。。。いぢめだ。いぢけてやるぅ(w _________________ | ||||
|
投稿日時: 2005-02-14 22:47
同じく Firefox でもダメ。 |