【问题标题】:How to convert some long double to long int in c?如何在c中将一些long double转换为long int?
【发布时间】:2013-03-15 08:01:16
【问题描述】:

我正在尝试将 double 类型变量转换为 long long int。我知道的唯一方法是铸造。虽然看起来没问题,但我没有收到我想要的号码。

我把代码贴在下面:

double fator = 100000000;
long long int iLongitude = (long long int)(fLongitude*10000000);

我预期的数字是 -4396478167,我得到的是 -439647816,没有最后一个数字。

感谢您的帮助!

【问题讨论】:

  • fLongitude 是什么及其价值?
  • const double fLongitude = -43.96478166666666....
  • double int 无效。
  • ok,忽略double int,其实代码只是double fator
  • 阅读man 3 printf:它说你应该长期使用“%lld”。

标签: c casting int double


【解决方案1】:

看来你只需要再加一个零,并且还要四舍五入:

(long long int)(fLongitude*100000000 + 0.5);

由于转换会截断结果,如果小数部分大于0.5+ 0.5 将四舍五入。

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多