2012-01-29 105 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