小数点第2未満を切り捨て

解決


hoge  2008-12-21 14:20:01  No: 69313  IP: 192.*.*.*

double型の小数点第2未満を切り捨てしたいのですが、どういった関数やAPIを利用すればよいのでしょうか?

編集 削除
YuO  2008-12-22 01:25:54  No: 69314  IP: 192.*.*.*

100倍して,Math.Floor
http://msdn.microsoft.com/ja-jp/library/e0b5f0xb.aspx
またはMath.Truncate
http://msdn.microsoft.com/ja-jp/library/c2eabd70.aspx
して,100で割ればよいです。
ただし,doubleですから誤差はついてまわります。

編集 削除
YuO  2008-12-22 10:33:02  No: 69315  IP: 192.*.*.*

C#の掲示板と勘違いしてました。C++でしたね。

floor関数がmath.hにあります。
ただし,Truncate相当は存在しないので,符号を保存して絶対値でfloorとることになります。

編集 削除
hoge  2008-12-23 00:04:37  No: 69316  IP: 192.*.*.*

YuOさん

ありがとうございます。
double型を100倍して、int型に格納し、100で割ってdouble型に格納する方法でやったら、うまくいきました。

編集 削除
maru  2008-12-25 08:15:56  No: 69317  IP: 192.*.*.*

> double型を100倍して、int型に格納し、100で割ってdouble型に格納する方法でやったら、うまくいきました。
ということは、その数値の範囲はintの範囲÷100になるわけだけど、問題はないのかな?
もしそうならば、その数値はそもそもdouble型にしておく必要があるのかな。
そのあたりをよく考えたほうがよくないですか?

編集 削除