整数のみ抽出 – プログラミング – Home

通知
すべてクリア

[解決済] 整数のみ抽出


すみ
 すみ
(@すみ)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

かなり初歩的な質問なのですが、
計算式で((100/3)*1000)とした場合に除算時に整数値のみを取得する関数はありませんでしょ
うか。
環境 Win2000 VC++6.0


引用未解決
トピックタグ
はお
 はお
(@はお)
ゲスト
結合: 22年前
投稿: 5
 

これでいいと思いますがいかがでしょうか。
(((int)(100/3))*1000)


返信引用
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

関数も何も、
  int i = (100/3)*1000;
の結果は33000になりますが、こういうことではなくて?


返信引用
はお
 はお
(@はお)
ゲスト
結合: 22年前
投稿: 5
 

あ、そうか。
整数/整数は整数でしたね。


返信引用
らふ
 らふ
(@らふ)
ゲスト
結合: 22年前
投稿: 18
 

もしかして、33333が取得したい、ということなのでしょうか。
もしそうなら、
((100.0/3.0)*1000.0)
として、結果をintへキャストしてやればいいと思います

違ってたらごめんなさい。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 modfを期待してるとか???


返信引用
すみ
 すみ
(@すみ)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

はおさん、tibさんの言うと通り(int)にすれば良いことは分かっていたのですが、なんとなく
関数があったよう(java?VB?)な気がしまして。すみません。
NEG(ねぐ)さんのmodf関数は初めてしりました。参考にします。
ありがとうございました。


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 22年前
投稿: 280
 

精度をよくしたい場合は、掛け算を先に行い、後で除算したほうがいいですよ。

((100/3)*1000) と ((100*1000)/3) の答えは違いますょ

但し、注意点として、先に掛け算をするとオーバーフローが発生する場合があります。


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

あまり誉められたもんじゃないけど、私の場合、よくわからんときは、

int( ((100.0/3.0)*1000.0) )

と、ひたすら浮動少数にし、最後にキャスト。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました