2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

プログラミングに詳しい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