かなり初歩的な質問なのですが、
計算式で((100/3)*1000)とした場合に除算時に整数値のみを取得する関数はありませんでしょ
うか。
環境 Win2000 VC++6.0
これでいいと思いますがいかがでしょうか。
(((int)(100/3))*1000)
関数も何も、
int i = (100/3)*1000;
の結果は33000になりますが、こういうことではなくて?
あ、そうか。
整数/整数は整数でしたね。
もしかして、33333が取得したい、ということなのでしょうか。
もしそうなら、
((100.0/3.0)*1000.0)
として、結果をintへキャストしてやればいいと思います
違ってたらごめんなさい。
modfを期待してるとか???
はおさん、tibさんの言うと通り(int)にすれば良いことは分かっていたのですが、なんとなく
関数があったよう(java?VB?)な気がしまして。すみません。
NEG(ねぐ)さんのmodf関数は初めてしりました。参考にします。
ありがとうございました。
精度をよくしたい場合は、掛け算を先に行い、後で除算したほうがいいですよ。
((100/3)*1000) と ((100*1000)/3) の答えは違いますょ
但し、注意点として、先に掛け算をするとオーバーフローが発生する場合があります。
あまり誉められたもんじゃないけど、私の場合、よくわからんときは、
int( ((100.0/3.0)*1000.0) )
と、ひたすら浮動少数にし、最後にキャスト。