ステキ解釈

まいこです。
ディーラーさんの問い合わせでプログラムを作っていたら、詰まりました。
どう考えても間違ってないはず。
いろいろ試した結果、シンタックスとしては間違っていなかったんですが、コンパイラの解釈が間違っていたんです。
まあ、最終的には元のコードでは動かなかったわけですから、間違っていたということになるんですが。
元のコードはこんな感じ。

nVol/2-80.5 (nVolはfloat型)

これだとシンタックスエラーでコンパイルが通りません。
このコードは−80dB〜+12dBのデータが1〜185の数値(−80dBが1で、以降0.5dB刻みでインクリメント)で返ってくるので、それをデシベル値に変換するという計算式です。
もっとスマートになりそうなんですが、とりあえず1〜93で返ってくる(1dBごとにインクリメント)はずが倍になって戻ってきてると言われ、電話中に急遽計算式をやっつけたので、こんな感じになっちゃいました。
で、動いたプログラム。

nVol / 2 - 80.5

何が違うのかは、半角スペースが入ってるところだけです。

nVol/2 - 80.5

は動きます。
なるほど、と。
どうやらコンパイラ

(nVol / 2)
(-80.5)

と解釈しているようです。
だから、単発に出てきた-80.5がおかしいと言っているわけです。
常々、うちで扱ってる制御システムのコンパイラはいい加減だと思ってましたが、とてもステキです。