2012-01-29 82 views
0

我在使用QtDeveloper將double值轉換爲int時遇到了問題。如圖所示,x是整數,而y是雙倍。當int x=static_cast<int>(y)運行時,x應該是-1,但它是0.請問任何想法爲什麼?在Qt開發人員中將雙精度值轉換爲int

對於大局觀單擊here

Screenshot of execution

+0

您打算舍入到最接近的整數還是捨棄小數部分? – 2012-01-29 23:17:41

+0

我需要減少分數。 – MrD 2012-01-29 23:18:43

+0

嘗試打印x的值(使用cout或printf)並查看您是否也得到0而不是-1。如果您得到-1,那麼調試器或IDE會出現問題。 – 2012-01-29 23:21:53

回答

1

由於alexisdm在他的評論中說:

你確定沒有任何負指數在年底 「Value」字段的省略號之後?

1

按預期工作對我來說。

代碼:

#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的任何錯誤,或者你正在使用它錯了;)

+0

它工作正常,我沒有看到負指數。但是,努力。 – MrD 2012-01-29 23:42:42