我正在面对有关在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