[過去ログ]
【CF2.5】Clickteam Fusion/Multimedia Fusion 21 (1002レス)
【CF2.5】Clickteam Fusion/Multimedia Fusion 21 http://mevius.5ch.net/test/read.cgi/gamedev/1593060392/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
976: 名前は開発中のものです。 [sage] 2021/11/22(月) 11:34:00.13 ID:aZmu6SQH 不思議な仕様を見つけた A 1.0*1/3 B 1*1.0/3 どちらも答えは3.333333... になるかと思いきや、Aでは3.00、Bでは3.333333... となる。 A (1.0*1)/3 にすると3.333333...と正しい答えが返ってくる。 http://mevius.5ch.net/test/read.cgi/gamedev/1593060392/976
978: 名前は開発中のものです。 [sage] 2021/11/22(月) 19:03:38.94 ID:LHuExnUq >>976 割り算が先に処理されるってことなのかな なんだかわからなくなってきた この仕様 http://mevius.5ch.net/test/read.cgi/gamedev/1593060392/978
980: 名前は開発中のものです。 [sage] 2021/11/23(火) 20:02:07.22 ID:wC+wLM1X >>976 型変換にまつわる糞仕様で、通常の計算式だと乗算と割り算は優先度等しいからこの場合式の左から優先なんだけど 浮動小数を扱うfloat型と整数のlong型が混在する式の場合、一致する型同士での計算が演算子の記述順よりも優先されてる A 1.0*1/3=0 B 1*1.0/3=0.333 この書き方にも実は問題があってAとBは厳密に言うとA=Bではない 1.0は浮動小数点符号付きだからfloat型、1は整数のlong型、それぞれ違う数値型で2つは確保される コンピューター内部では1.0と1は型が違うから特にC++とか型にうるさい言語ではこの2つはそのまま計算に使えない、だから型変換が必要になる 意図しない型変換を避けるためにもfloatとlongを混在させず、上記式も A=Bの場合 1.0*1.0/3.0=0.333 こう書くと曖昧さがなくなって当然同じ計算結果が得られる この型変換の糞仕様の糞部分は、型変換知らないと式を括弧で囲っても解決されない点にあって 1.1*(1/3)=0. これがなぜこうなるか理解できない人もいる可能性 要するに計算に用いる値は型を揃えて書いてください、整数型と浮動小数混ぜると計算結果違ってくる可能性あります http://mevius.5ch.net/test/read.cgi/gamedev/1593060392/980
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s