トップページ⇒tech
139コメント27KB

float 使うヤツはドシロートかおぢさん

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/09/22(月) 11:01:49
なんで double 使わないの?
もう氏んでください。迷惑です。
むかし懐かしい BASIC じゃあるまいし。
何考えてるんだ?

※巨大な配列で float a[10000]; とか取るなら仕方ないです。
 または、他のコンピュータとのデータのやりとりのために
 どうしても相手が float で無ければダメだとか
 そういうのは別ですよ、もちろん。
0102デフォルトの名無しさん2009/09/01(火) 17:15:01
>>100
それだけだとdoubleな定数使ってて、後からfloatに切り替えたときに問題おきない?
0103デフォルトの名無しさん2009/09/01(火) 17:21:27
>>102
具体的に。一応そのための関数型キャストなんだけど。
0104デフォルトの名無しさん2009/09/01(火) 17:40:51
float f;
std::min( f, 1.0 );

このコンパイルが通らないのは正直むかつくお
0105デフォルトの名無しさん2009/09/01(火) 17:51:28
>>103
値の丸めが起きて、それが原因の問題に
気がつき難いのじゃないかなと。
0106100=1032009/09/01(火) 18:07:03
>>105
そもそもそれが問題になるところでは使わないから大丈夫。

>>104
std::min(f, 1.f)で何か不満でも?
0107デフォルトの名無しさん2009/09/02(水) 01:20:44
なんで 1.0f じゃなくて 1.f とか奇怪な表記する人が多いんだろう?
0108デフォルトの名無しさん2009/09/02(水) 02:16:10
省略できるから省略する
0109デフォルトの名無しさん2009/09/02(水) 02:42:18
ゆとりだろ。
若しくはソースを見る人への思いやりがない人。
0110デフォルトの名無しさん2009/09/02(水) 03:07:01
・昔のC言語だとfloatをfloatのまま演算することが無く、よほどメモリを食う場合以外
doubleの方が速かった(この頃は「floatはdoubleより遅いからメモリ節約くらいしか
役に立たない」という教育がされたので、その頃から知識を更新してないド素人か老害
は>>1のように思い続けている)
・今のC言語コンパイラでは、floatはfloatのまま演算させることが普通
・最近の環境では一般に、floatもdoubleも速度は変わらないことが多いが、SIMD命令
だと普通はfloatが速く、メモリ効率もfloatの方がいいのでfloatが速度的には有利
・精度はdoubleの方が圧倒的にマシ(というかfloatの精度はかなりひどいので要注意)

まぁ、現時点では用途で使い分けだな。それも、あくまでも現時点での話だが。
0111デフォルトの名無しさん2009/09/02(水) 09:28:40
>>110
一つだけ補足。SIMD命令ではfloatが速いということがメリットなのではない。
SIMDなので、並列度が高くなることの方が重要。
0112デフォルトの名無しさん2009/09/02(水) 09:38:13
それは速いに含めていいんじゃね
0113デフォルトの名無しさん2009/09/02(水) 10:51:54
floatは精度悪すぎ
ゲームなどお遊びにしか使えね〜
0114デフォルトの名無しさん2009/09/02(水) 11:52:43
>>113
あなたの世界ではそうなんでしょうね。
0115デフォルトの名無しさん2009/09/02(水) 11:55:43
ゲームはお遊びだが、ゲームプログラミングはお遊びには程遠いな
言葉遊びの習慣がある奴は人から信用されないぞ
0116デフォルトの名無しさん2009/09/02(水) 13:16:05
>>115
>言葉遊びの習慣がある奴
一瞬、「そりゃお前のことじゃね?」と思ってしまった。
が、結局誰を指して言ってるんだ?
0117デフォルトの名無しさん2009/09/02(水) 13:34:36
113のことだろ
0118デフォルトの名無しさん2009/09/02(水) 13:57:34
113のこととしか思えないが
0119デフォルトの名無しさん2009/09/02(水) 14:00:31
すまん、どこが「言葉遊び」なのか判らない。
0120デフォルトの名無しさん2009/09/02(水) 15:55:34
CPUってもう64bitがデフォルトになってるから64bitでレジスタもワイヤーも組んであって
むしろ32bitをわざわざ64bitレジスタに乗っけてるような状態だから
double常用でぜんぜんいいんだけど
IPV4だのIPV5だの中途半端なものがfloatだよ
状況によってはdoubleより早いかもしらんが、doubleしかなきゃないで誰も困らないだろ
さっさと64bitに統一してしまえ
0121デフォルトの名無しさん2009/09/02(水) 16:35:36
世の中にはatomという物もあってだな
0122デフォルトの名無しさん2009/09/02(水) 16:56:20
>>120
>IPV5だの
そんな規格は存在しません。
>doubleしかなきゃないで誰も困らないだろ
ときどきは通信速度のことも思い出してあげてください。
0123デフォルトの名無しさん2009/09/02(水) 18:10:57
>>120
メモリアクセス
0124デフォルトの名無しさん2009/09/02(水) 18:15:20
>>120
SSE
0125デフォルトの名無しさん2009/09/02(水) 18:22:02
GPUがCPUと一体化するまでこの話はお預け
0126デフォルトの名無しさん2009/09/02(水) 18:41:29
floatをdoubleにするだけで、
性能が1/10になっちゃうなんて言われたら
そんな簡単にいらないなんて言えないよ
0127デフォルトの名無しさん2009/09/02(水) 20:22:15
doubleしかなきゃないできっと誰も困らないが、現にdoubleより速くて精度の低い
floatがあるから使い分けなきゃ駄目なんだよ、現実は面倒だね

この程度が面倒ならプログラマなんかやってられねーけどな
0128デフォルトの名無しさん2009/09/02(水) 21:06:32
>>1は固定小数点処理を頑張って書いてベンチもせずに使ってる奴と同じ匂いがする
0129デフォルトの名無しさん2009/09/03(木) 01:40:58
>>120
おまえみたいな考え方の奴がいるせいで日本の経済格差が広がるんだろうな
0130デフォルトの名無しさん2009/09/29(火) 11:34:13
最近のマシンじゃ処理時間なんて扱うメモリ量で殆ど決まるからなー。
大きなベクトルや行列演算なんかするとfloatとdoubleできっかり2倍違う。
0131デフォルトの名無しさん2009/09/30(水) 12:15:15
>>129
経済格差が広がったのは村山政権のとき。64bit統一なんて無関係。
0132デフォルトの名無しさん2011/06/01(水) 01:27:12.34
      __
    , '´   ヽ
   .{ i{ノハ从k}   ./)
   ヽ!l|, ゚ ヮ゚ノリ、//  よい
     /' );-さ-リつヾ
   / Uノ_i_iヽ
   へノ し'-/調子     
 """"""""""""""
      __
    , '´   ヽ
   .{ i{ノハ从k}   ./)
   ヽ!l|, ゚ ヮ゚ノリ、//  しょっと。
     /' );-さ-リつヾ
   / Uノ_i_iヽ  
   へノ し'ノ  
      調子
 """""""""""""""""
0133デフォルトの名無しさん2011/06/01(水) 14:08:17.01
シロートじゃなくてフロートだろ(キリッ
0134デフォルトの名無しさん2011/06/01(水) 15:42:17.82
だれうま
0135デフォルトの名無しさん2011/06/01(水) 16:25:04.74
クスッときた
0136デフォルトの名無しさん2011/06/03(金) 00:27:40.61
>>49
すでに2年以上前に予言されていたという衝撃の事実
0137デフォルトの名無しさん2011/06/15(水) 00:36:11.63
そうだね、悔しいよね
0138デフォルトの名無しさん2011/06/26(日) 19:51:58.90
>>1

知ったかぶりすんな、この屑が
0139デフォルトの名無しさん2011/11/20(日) 14:25:21.06
さあ
■ このスレッドは過去ログ倉庫に格納されています