■ このスレッドは過去ログ倉庫に格納されています
プログラミングに詳しいJ民来てクレメンス!!!!
- 1 :風吹けば名無し:2021/07/07(水) 13:35:27.06 ID:AmjNftH200707.net
- あるfloatが別のfloatの整数倍であることを判定するにはどうすればええんや?
例えば1.5fが0.5fが3倍であるのを判定するとか
浮動小数点による誤差が気になって夜も眠れないンゴ
- 2 :風吹けば名無し:2021/07/07(水) 13:35:43.84 ID:AmjNftH200707.net
- 助けてクレメンスなあ
- 3 :風吹けば名無し:2021/07/07(水) 13:35:54.91 ID:N8PwboCu00707.net
- 差が一定以下ってすればええやろ
- 4 :風吹けば名無し:2021/07/07(水) 13:36:19.26 ID:AmjNftH200707.net
- こうして保守しておくンゴから
- 5 :風吹けば名無し:2021/07/07(水) 13:37:09.46 ID:AmjNftH200707.net
- >>3
その一定のラインはどこや?
1.50005みたいな場合はちゃんと整数倍でないとしたい
- 6 :風吹けば名無し:2021/07/07(水) 13:37:17.33 ID:AmjNftH200707.net
- 助けてクレメンスなあ
- 7 :風吹けば名無し:2021/07/07(水) 13:37:32.09 ID:0hlYZ0zad0707.net
- 簡単だわ
浮動小数店をいじればレバレッジが効いて反発するだろ
- 8 :風吹けば名無し:2021/07/07(水) 13:37:35.47 ID:oH9yAdARd0707.net
- いいよなんでもきいて
- 9 :風吹けば名無し:2021/07/07(水) 13:37:53.87 ID:ZF8GofDWM0707.net
- 判定してくださいってお願いする
- 10 :風吹けば名無し:2021/07/07(水) 13:37:59.90 ID:AmjNftH200707.net
- >>7
お前さん、さては素人メンスな?
- 11 :風吹けば名無し:2021/07/07(水) 13:38:12.48 ID:ya+VPuKY00707.net
- オペレーターオーバーライドして自前で判定処理つくればええやん
- 12 :風吹けば名無し:2021/07/07(水) 13:38:13.42 ID:E+krzhtoM0707.net
- floatである必要性はあるの?
- 13 :風吹けば名無し:2021/07/07(水) 13:38:16.10 ID:7h2oIzF/00707.net
- なんUにもプログラミング部あるから
- 14 :風吹けば名無し:2021/07/07(水) 13:38:17.63 ID:BCewuGXh00707.net
- 浮動小数点の誤差はどうやってもついてくるから正確な判定は無理
- 15 :風吹けば名無し:2021/07/07(水) 13:38:18.92 ID:i0WzIVLuM0707.net
- 割ればええんちゃう
余りとか駆使すればいけるやろ
- 16 :風吹けば名無し:2021/07/07(水) 13:38:21.87 ID:AmjNftH200707.net
- >>8
1に書いたで
答えてクレメンス
- 17 :風吹けば名無し:2021/07/07(水) 13:38:26.55 ID:0hlYZ0zad0707.net
- フロートがダメならあれを使ってあれだよ
CSSのあれ
えーっと・・
- 18 :風吹けば名無し:2021/07/07(水) 13:38:27.61 ID:oH9yAdARd0707.net
- 質問がないなら帰るよ
- 19 :風吹けば名無し:2021/07/07(水) 13:38:34.93 ID:BwYiCSNzd0707.net
- ×3してifで判定する
- 20 :風吹けば名無し:2021/07/07(水) 13:38:39.08 ID:N8PwboCu00707.net
- >>5
浮動小数点による誤差レベルの誤差は違うと判定したいんか?
誤差が浮動小数点由来かどうかまではわからんから大きさで区切るしかないで
元の数字の何%を誤差の上限にするとか
- 21 :風吹けば名無し:2021/07/07(水) 13:38:51.68 ID:tvAORP2h00707.net
- 割った答えが自然数やったらええんちゃうの
- 22 :風吹けば名無し:2021/07/07(水) 13:38:58.80 ID:AmjNftH200707.net
- >>12
ダブルかなんかでもいい
でも小数であるのは必須や
- 23 :風吹けば名無し:2021/07/07(水) 13:39:01.84 ID:TosVHM9E00707.net
- GitHub copilotや
- 24 :風吹けば名無し:2021/07/07(水) 13:39:11.00 ID:0hlYZ0zad0707.net
- アバンギャルドじゃなくて・・
- 25 :風吹けば名無し:2021/07/07(水) 13:39:23.05 ID:MV9GNpk+00707.net
- >>5
そのラインはお前が決めるんや
- 26 :風吹けば名無し:2021/07/07(水) 13:39:29.19 ID:AmjNftH200707.net
- >>15
余りに誤差は生じないのか?
- 27 :風吹けば名無し:2021/07/07(水) 13:39:46.59 ID:cEx4YaKra0707.net
- 浮動小数点の誤差ほんまうんち
2進数で小数表現するもっといい方法ってないんかな
- 28 :風吹けば名無し:2021/07/07(水) 13:40:10.18 ID:oH9yAdARd0707.net
- >>16
def integer?(x)
x==x.to_i;
end
- 29 :風吹けば名無し:2021/07/07(水) 13:40:12.12 ID:li02Bh/C00707.net
- 浮動小数点の仕様を理解しようで
- 30 :風吹けば名無し:2021/07/07(水) 13:40:20.43 ID:caa+qa7oM0707.net
- 余り0じゃだめなん?
- 31 :風吹けば名無し:2021/07/07(水) 13:40:39.32 ID:9NIKNP6t00707.net
- バイトに変換して一致してるかとか見ないとあかんのとちゃう
メリットを感じないが
- 32 :風吹けば名無し:2021/07/07(水) 13:40:55.69 ID:li02Bh/C00707.net
- >>27
固定小数点とか言うのが過去にはあったし今も探せばあるやろ
- 33 :風吹けば名無し:2021/07/07(水) 13:41:03.10 ID:AmjNftH200707.net
- >>20
あまりに小さい桁は無視できる
ほな小数点何桁で区切ればええんや
- 34 :風吹けば名無し:2021/07/07(水) 13:41:11.46 ID:ya+VPuKY00707.net
- どこまで誤差許容するかはお前次第やろ
- 35 :風吹けば名無し:2021/07/07(水) 13:41:17.86 ID:vIm6W/dxd0707.net
- >>28
それrubyじゃん…
- 36 :風吹けば名無し:2021/07/07(水) 13:41:23.17 ID:cxKmPUgw00707.net
- floatで剰余使えなくね
- 37 :風吹けば名無し:2021/07/07(水) 13:41:36.31 ID:CinSyJeEM0707.net
- 出来なくはないけど意味ない
- 38 :風吹けば名無し:2021/07/07(水) 13:41:41.86 ID:Xp7W6gZJp0707.net
- 判定用に整数を用意するんや
- 39 :風吹けば名無し:2021/07/07(水) 13:41:41.86 ID:9NIKNP6t00707.net
- >>27
decimal型「decimal型」
- 40 :風吹けば名無し:2021/07/07(水) 13:41:56.91 ID:yvI+B6A300707.net
- x = 0.5 * 3
print x
これでオッケーや
- 41 :風吹けば名無し:2021/07/07(水) 13:41:57.95 ID:N8PwboCu00707.net
- >>33
だからどこで切るかは君次第や
- 42 :風吹けば名無し:2021/07/07(水) 13:42:10.16 ID:b4c0jRgf00707.net
- 整数で言うa % b == 0をしたいってことか?
ほなら
var rem = a & b;
if (rem <= 0.5)みたいな感じでええんちゃうの?
- 43 :風吹けば名無し:2021/07/07(水) 13:42:32.11 ID:9NIKNP6t00707.net
- 言語によっては浮動小数点の型によるレベルの誤差は無視して等しいとかやったりせんかな?
- 44 :風吹けば名無し:2021/07/07(水) 13:42:58.57 ID:b4c0jRgf00707.net
- >>42
&打ち間違えで%や
- 45 :風吹けば名無し:2021/07/07(水) 13:43:09.51 ID:CinSyJeEM0707.net
- >>33
素直にRational型使え
そもそも根本的にfloatの使い方間違ってる
- 46 :風吹けば名無し:2021/07/07(水) 13:43:16.37 ID:i0WzIVLuM0707.net
- 実際企業とかの実用的なプログラミングするときって有効桁制御するからな
その状況自体矛盾してるような
- 47 :風吹けば名無し:2021/07/07(水) 13:43:23.53 ID:w+2u42xNM0707.net
- >>43
方によるレベルの誤差をどう判定すんねん
かってに決められたら困るわ
- 48 :風吹けば名無し:2021/07/07(水) 13:43:29.53 ID:AmjNftH200707.net
- >>42
すまん、なんやそれ
- 49 :風吹けば名無し:2021/07/07(水) 13:43:46.98 ID:AmjNftH200707.net
- >>45
なるほど
- 50 :風吹けば名無し:2021/07/07(水) 13:43:58.23 ID:MV9GNpk+00707.net
- >>33
お前が!決めろや!そのラインを!!
- 51 :風吹けば名無し:2021/07/07(水) 13:44:20.49 ID:MV9GNpk+00707.net
- >>33
ハゲ!
- 52 :風吹けば名無し:2021/07/07(水) 13:44:28.17 ID:li02Bh/C00707.net
- >>43
ぶっちゃけ処理系にもよるから何とも言えんわ
floatを比較すること自体気持ち悪い人間はいる
- 53 :風吹けば名無し:2021/07/07(水) 13:45:13.90 ID:0hlYZ0zad0707.net
- phpを
- 54 :風吹けば名無し:2021/07/07(水) 13:45:18.36 ID:CinSyJeEM0707.net
- >>46
計算するようなのはそもそも任意精度とかやるよ企業とかでは
一般のアプリケーションでfloatの値受け取るとかの話ならそもそも有効桁の考慮すらしない
- 55 :風吹けば名無し:2021/07/07(水) 13:45:28.20 ID:b4c0jRgf00707.net
- >>48
余りが0やと対象の倍数ってことやん
- 56 :風吹けば名無し:2021/07/07(水) 13:45:28.52 ID:YwtXoAsF00707.net
- たまに知恵袋になるよな
- 57 :風吹けば名無し:2021/07/07(水) 13:45:31.43 ID:0hlYZ0zad0707.net
- わかりませんすいませんでした
- 58 :風吹けば名無し:2021/07/07(水) 13:45:36.72 ID:eb4GQgm0M0707.net
- ユニバーサルメルカトル図法を使えば
- 59 :風吹けば名無し:2021/07/07(水) 13:46:06.77 ID:aq8QFyQg00707.net
- そこまで厳密に計算せなあかんのか
- 60 :風吹けば名無し:2021/07/07(水) 13:46:13.55 ID:ya+VPuKY00707.net
- そもそも正確な整数倍判定とりたいなら整数つかいなよ
浮動小数点数でそんな事しようとしてる時点でなんかおかしいで
- 61 :風吹けば名無し:2021/07/07(水) 13:47:22.84 ID:WY6PM4NI00707.net
- x ÷ y = z だとしてZが整数かどうか判断したいって事?言語はc?
- 62 :風吹けば名無し:2021/07/07(水) 13:47:27.67 ID:AmjNftH200707.net
- >>55
それやと1.8も0.5の整数倍になるで
余りがどれだけ小さい時に整数判定するかのラインがわからんねゎ
- 63 :風吹けば名無し:2021/07/07(水) 13:47:54.59 ID:17VQv7Xg00707.net
- そんな簡単なこともわからないのか…
- 64 :風吹けば名無し:2021/07/07(水) 13:47:57.17 ID:cdYfsGYgM0707.net
- >>60
これやな
誤差出てもどうせ切り捨てるわけやし
- 65 :風吹けば名無し:2021/07/07(水) 13:48:00.18 ID:li02Bh/C00707.net
- 信号処理くらいでしか使わんわなぁ
それすら整数で考えた方がメリットが多いし
- 66 :風吹けば名無し:2021/07/07(水) 13:48:13.33 ID:AmjNftH200707.net
- >>61
c#
- 67 :風吹けば名無し:2021/07/07(水) 13:48:21.50 ID:eb4GQgm0M0707.net
- 言語にもよるけど浮動小数点用の関数とか標準であるやん
- 68 :風吹けば名無し:2021/07/07(水) 13:48:25.29 ID:buiMPNdo00707.net
- decimal型にすれば
- 69 :風吹けば名無し:2021/07/07(水) 13:48:33.40 ID:9lxDE8hf00707.net
- mod
- 70 :風吹けば名無し:2021/07/07(水) 13:48:36.01 ID:ya+VPuKY00707.net
- どうしてもやりたいなら大抵の言語はイプシロンとか定義されてるやろ
- 71 :風吹けば名無し:2021/07/07(水) 13:48:47.46 ID:CinSyJeEM0707.net
- >>42
それ小さいとだめじゃね?
- 72 :風吹けば名無し:2021/07/07(水) 13:48:52.37 ID:b4c0jRgf00707.net
- >>62
余りを0fとかにすればええんちゃう?
float func(float value1, float value2)
{
var div = value1 / value2;
var rem = value1 % value2;
if (rem == 0) return div;
}
- 73 :風吹けば名無し:2021/07/07(水) 13:49:09.08 ID:aq8QFyQg00707.net
- decimalかdoubleじゃあかんのか?
- 74 :風吹けば名無し:2021/07/07(水) 13:49:19.02 ID:CinSyJeEM0707.net
- だからRational使えって
- 75 :風吹けば名無し:2021/07/07(水) 13:49:31.53 ID:N8PwboCu00707.net
- もしあれならなんか数値と誤差を持った型を作って、演算ごとに誤差が累積するようにして、比べるときにはその誤差の範囲内にあれば等しいようにするとか?
- 76 :風吹けば名無し:2021/07/07(水) 13:49:32.42 ID:00fb1U7uM0707.net
- Float型とか使わんわ
Doubleばっか
- 77 :風吹けば名無し:2021/07/07(水) 13:49:34.85 ID:CinSyJeEM0707.net
- なんだアフィか
- 78 :風吹けば名無し:2021/07/07(水) 13:49:59.54 ID:2c+PwInIH0707.net
- 割って整数かどうかジャッジ
- 79 :風吹けば名無し:2021/07/07(水) 13:50:01.45 ID:fN6y/h7m00707.net
- 宿題をなんJで解決するのやめろ
- 80 :風吹けば名無し:2021/07/07(水) 13:50:08.68 ID:AmjNftH200707.net
- >>72
floatは誤差が生じて0にならない可能性があり
- 81 :風吹けば名無し:2021/07/07(水) 13:50:31.87 ID:txFgbCnFM0707.net
- 10進数に最適化されたCOBOLっていう言語があるんですよ
- 82 :風吹けば名無し:2021/07/07(水) 13:50:43.73 ID:9NIKNP6t00707.net
- c#ならdecimalでええんとちゃうの?
- 83 :風吹けば名無し:2021/07/07(水) 13:50:45.68 ID:N8PwboCu00707.net
- 誤差持った型でも作らない限り、元々の誤差なのか計算から来た誤差なのかの判別はつかんて
- 84 :風吹けば名無し:2021/07/07(水) 13:50:58.07 ID:AmjNftH200707.net
- >>68
コレメンスか?
floatはdecimalにすると遅いとかあるんかな
- 85 :風吹けば名無し:2021/07/07(水) 13:51:29.51 ID:b4c0jRgf00707.net
- >>80
1.5 % 0.5でも余り0になるとは限らないんやっけ
とすると多少許容するしかないんちゃうの
if (rem < 0.1)とか
それが嫌なら整数しかないわ
- 86 :風吹けば名無し:2021/07/07(水) 13:51:39.64 ID:17VQv7Xg00707.net
- >>78
これ
割ったfloatの値を整数値かどうか判定する条件分岐を作ればええだけ
- 87 :風吹けば名無し:2021/07/07(水) 13:51:57.78 ID:AmjNftH200707.net
- >>74
ググったけど日本語の文献ほぼないンゴねぇ
- 88 :風吹けば名無し:2021/07/07(水) 13:52:23.36 ID:M25D+niVM0707.net
- 質問自体が相当レベル低くてプログラミングやったことないような奴の質問やからな
- 89 :風吹けば名無し:2021/07/07(水) 13:52:38.63 ID:CinSyJeEM0707.net
- >>81
別にBCD使える以外最適化されてない定期
- 90 :風吹けば名無し:2021/07/07(水) 13:52:38.98 ID:b1oVCXoQ00707.net
- C=A*3
B==CならBはAの3倍
みたいにすりゃいいんじゃないかな
- 91 :風吹けば名無し:2021/07/07(水) 13:53:32.55 ID:LXUXOl3h00707.net
- fizzbuzzっぽく書けばええんちゃう
知らんけど
- 92 :風吹けば名無し:2021/07/07(水) 13:53:34.38 ID:CinSyJeEM0707.net
- >>87
何言ってんだお前普通に出てるだろ
そもそも何の言語使ってんだよ
- 93 :風吹けば名無し:2021/07/07(水) 13:54:25.31 ID:AmjNftH200707.net
- >>92
c#
- 94 :風吹けば名無し:2021/07/07(水) 13:54:33.33 ID:FZvO2Ff6M0707.net
- R
- 95 :風吹けば名無し:2021/07/07(水) 13:54:35.72 ID:b4c0jRgf00707.net
- >>90
普通に商と余りで計算できるんだからそれは効率悪すぎやろ
予め何倍か決まってるならええけど
- 96 :風吹けば名無し:2021/07/07(水) 13:55:21.96 ID:9lxDE8hf00707.net
- a/b=c
if (!b*c=a){
倍数でない
}
smart!
- 97 :風吹けば名無し:2021/07/07(水) 13:55:52.30 ID:AmjNftH200707.net
- ぉーん
- 98 :風吹けば名無し:2021/07/07(水) 13:55:57.55 ID:b4c0jRgf00707.net
- >>71
math.maxとか>で大きい方先頭にすりゃええ
- 99 :風吹けば名無し:2021/07/07(水) 13:56:00.54 ID:b1oVCXoQ00707.net
- >>95
ごめん
- 100 :風吹けば名無し:2021/07/07(水) 13:56:23.95 ID:9lxDE8hf00707.net
- floatてmodだめなのか?
- 101 :風吹けば名無し:2021/07/07(水) 13:56:38.44 ID:AmjNftH200707.net
- ンゴ…
総レス数 101
18 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200