【发布时间】:2012-04-04 14:36:55
【问题描述】:
你好,我用 C++ 编码,我需要一些帮助来将双精度转换为整数。 需要一种从双精度即(3.5945)“3”中获取第一个数字的方法。 并将该数字放入一个 int 中。
我现在正在使用 static_cast,它返回一个 0。
double X = 3.1234;
double Y = 4.3455;
int myIntX = static_cast <int>(X);
int myIntY = static_cast <int>(Y);
cout << myIntX << endl;
cout << myIntY << endl;
输出....
0 0
【问题讨论】:
-
请提供一个重现您的问题的示例。这个没有:ideone.com/zOlRz
-
你粘贴的代码没有你的bug。错误必须在您没有粘贴的代码中。请制作一个简短、完整的示例程序来演示该问题。见sscce.org
-
我的双精度数实际上是这个......不知道这意味着什么 3.89082e-316 我的程序相当大,双精度和整数变量都在该类中。
-
3.89082e-316 is 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000389082.当然,其中不可分割的部分是 0。
-
哦,非常感谢,那我一定是看错地方了。一定是我计算双倍的时候
标签: c++ int double static-cast