我正在面對有關在C++中使用Visual Basic編寫的一堆源代碼進行翻譯的問題。在代碼中調用方法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)方法詮釋(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)還有一個隱式轉換double到int。如何在C++中進行此轉換?
//Visual basic
Dim dt As Integer = -99.2
謝謝你提前,
嗯,不,VB會產生溢出異常。寫測試,比較結果,直到你快樂。 – 2012-01-11 18:18:39