- PR -

小数を四捨五入し、小数で表示したい

投稿者投稿内容
司会者
会議室デビュー日: 2004/11/18
投稿数: 11
投稿日時: 2005-02-14 11:48
いつも参考にさせていただいてます。

今回小数第三位で四捨五入を行い、
小数第二位で値を表示をしたいと思っております。
(例:12.56399 → 12.56、-5.688012 → -5.69など)

小数第一位で四捨五入をし、整数で表示する場合は
0.5を足して(または引いて)Fix関数利用で表現できるのは
分かるのですが、
『小数を四捨五入』かつ『小数で表示』の場合が
どうもうまくできなくて困っています。

どうかご教授願います。

SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-02-14 12:00
こんにちは。
以下でどうですか?
コード:

<VB.NET>
Dim inttemp As Integer
Dim answer As Double

inttemp = 10^ 小数点の有効桁数

answer = Int(実際の数値(小数) * inttemp + 0.5) / inttemp



あと、余計ですが環境を書いてくださいね。

[ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-14 12:01 ]
らぶま
常連さん
会議室デビュー日: 2004/10/21
投稿数: 32
投稿日時: 2005-02-14 12:12
ちょっと調べてみましたが、
Math.Roundメソッドでもいけそうですね。
たぶん、こんな感じ(未確認)?

Dim resl As Double
resl = Math.Round(XXXX * 1000, 1) / 1000

やってることは、SE卵さんと同じですが・・
_________________
がりうむ
会議室デビュー日: 2004/11/16
投稿数: 19
投稿日時: 2005-02-14 12:31
Math.Round は四捨五入とは少々異なるようですよ。
参考リンク:
http://akari.kabe.co.jp/magSite/Content.modf?id=20040701171030
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-02-14 12:42
http://jeanne.wankuma.com/tips/math/04-halfajust.html
_________________
中博俊 MSMVP Visual Studio C# Since 2004/04-2005/03, MCP
http://naka.wankuma.com/
http://blogs.wankuma.com/naka/
naka@wankuma.com
らぶま
常連さん
会議室デビュー日: 2004/10/21
投稿数: 32
投稿日時: 2005-02-14 12:43
>がりうむさん

確かに・・
やっぱ普通にSE卵さんのようにやるべきですね。
勉強になりました。
_________________
司会者
会議室デビュー日: 2004/11/18
投稿数: 11
投稿日時: 2005-02-14 14:16
ご返答下さった皆様、
おかげさまで実装できました(^^)
ありがとうございました。
(ちなみに環境はVS.NET2003、IIS6.0、言語はVB.NETです。今更ですが…)
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-02-14 14:21
ここでも四捨五入についてかなり議論されてます。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5507&forum=7

>司会者さん

リンク先でJittaさんが書かれてますが、負数を扱うなら、注意してください。

スキルアップ/キャリアアップ(JOB@IT)