我在使用QtDeveloper將double值轉換爲int時遇到了問題。如圖所示,x
是整數,而y
是雙倍。當int x=static_cast<int>(y)
運行時,x
應該是-1,但它是0.請問任何想法爲什麼?在Qt開發人員中將雙精度值轉換爲int
對於大局觀單擊here
我在使用QtDeveloper將double值轉換爲int時遇到了問題。如圖所示,x
是整數,而y
是雙倍。當int x=static_cast<int>(y)
運行時,x
應該是-1,但它是0.請問任何想法爲什麼?在Qt開發人員中將雙精度值轉換爲int
對於大局觀單擊here
由於alexisdm在他的評論中說:
你確定沒有任何負指數在年底 「Value」字段的省略號之後?
按預期工作對我來說。
代碼:
#include <iostream>
#include <string>
using namespace std;
void foo(double y)
{
int x = static_cast<int>(y);
cout << y << ' ' << x << endl;
}
int main()
{
foo(-1.37026f);
return 0;
}
輸出:
-1.37026 -1
可變y
必須具有不同的值。這似乎是您正在使用IDE的任何錯誤,或者你正在使用它錯了;)
它工作正常,我沒有看到負指數。但是,努力。 – MrD 2012-01-29 23:42:42
您打算舍入到最接近的整數還是捨棄小數部分? – 2012-01-29 23:17:41
我需要減少分數。 – MrD 2012-01-29 23:18:43
嘗試打印x的值(使用cout或printf)並查看您是否也得到0而不是-1。如果您得到-1,那麼調試器或IDE會出現問題。 – 2012-01-29 23:21:53