我在使用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