如何在c中将一些long double转换为long int?

时间:2013-03-25 17:58:46

标签: c casting int double

我正在尝试将double类型变量转换为long long int。我知道这样做的唯一方法就是施法。 Althoulg似乎没问题,我没有收到我想要的号码。

我发布下面的代码:

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

看起来你只需要再添加一个零,并且还要圆:

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

由于投射截断结果,如果小数部分大于+ 0.50.5将向上舍入。