el_*_*_le 26 c++ floating-point casting
为什么m总是= 0?someClass的x和y成员是整数.
float getSlope(someClass a, someClass b)
{
float m = (a.y - b.y) / (a.x - b.x);
cout << " m = " << m << "\n";
return m;
}
Run Code Online (Sandbox Code Playgroud)
Kir*_*rov 56
你需要使用演员表.我看到了其他的答案,它们确实有用,但是因为标签是C++
我建议你使用的static_cast
:
float m = static_cast< float >( a.y - b.y ) / static_cast< float >( a.x - b.x );
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 43
发生整数除法,然后将结果(整数)指定为浮点数.如果结果小于1,则结果为0.
你需要在分割之前先将表达式转换为浮点数,例如
float m = (float)(a.y - b.y) / (float)(a.x - b.x);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
154187 次 |
最近记录: |