Visual Basicで書かれたソースコードのC++での翻訳に関する問題に直面しています。コードではSign(VB)メソッドとfloatから整数への様々な変換への呼び出しがあります... 1、2、3のC++コードがVBと同じであることを確認できますか?暗黙的な変換に加えて、変換がどのように実行されるかはわかりません(4を参照)。何か案が?Visual BasicからC++へのコードの移動
1)方法サイン(Visual Basicの)
//C++
int sign(float value)
{
if (value < 0) return -1;
else if (value == 0) return 0;
else return 1;
}
2)方法のInt(Visual Basicの)
//C++
int Int(float value)
{
return ((value >= 0) ? value : floor(value));
}
3)方法CInt関数(Visual Basicの)
//C++
int CInt(const float val)
{
float x = fabs(val - (int)val);
if (fabs(x - 0.5) < 0.0001)
return (int)val;
else
return (int)(val+(val>=0.0?0.5:-0.5));
}
4)また、intからdoubleへの暗黙の変換もあります。この変換をC++で行う方法は?これは、同じ、浮動小数点値は、(この例では、0)定数変数と比較されるべきではないれていない
まあ、いいえ、VBはオーバーフロー例外を生成します。テストを書いて、幸せになるまで結果を比較してください。 –