【问题标题】:Getting First digit in double and storing it in an int C++以双精度获取第一个数字并将其存储在 int C++ 中
【发布时间】: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


【解决方案1】:

试试这个:

double x=3.1234;
int myintx=(int)x;

while(myintx%10!=0)
myintx/=10;

cout<<myintx;

这将为您提供作为 int 的 double 的第一个数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2019-08-13
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多