C++ C++;将双精度转换为长精度

C++ C++;将双精度转换为长精度,c++,double,long-integer,C++,Double,Long Integer,我在程序中使用了pow(双基,双指数),如何将答案转换为long数据类型?只需使用以下语句之一(取决于您的个人要求): lround(pow(base,exp))(与结果最接近的数字) floor(pow(基本,经验))(最接近的数字小于结果) ceil(pow(base,exp))(比结果大的最近数字) 我在寻找一个从双到长的实际转换 经过一些研究,铸造实际上做到了: double myDouble = 12.345; long myTruncatedLong = (long) myDoubl

我在程序中使用了
pow(双基,双指数)
,如何将答案转换为
long
数据类型?

只需使用以下语句之一(取决于您的个人要求):

  • lround(pow(base,exp))(与结果最接近的数字)
  • floor(pow(基本,经验))(最接近的数字小于结果)
  • ceil(pow(base,exp))(比结果大的最近数字)

  • 我在寻找一个从双到长的实际转换

    经过一些研究,铸造实际上做到了:

    double myDouble = 12.345;
    long myTruncatedLong = (long) myDouble;
    

    myTruncatedLong将是12。

    您可以直接将其转换为-
    (long)pow(base,exp)
    首先为什么要转换为long?此外,C++提供上限和下限,如果你需要的是小于和大于数字,因为我输入的数据类型很长。将一个值赋给一个长变量自动将其转换成<代码> long <代码>谢谢。这有很大帮助。不,在我的电脑里,我试过了,结果也被舍入了。可能这取决于编译器的Watch,如果提供了一个负数,那么1会发生什么。@TanmoyKrishnaDas如果编译器在将浮点转换为整数时舍入到最近值,那么它就不符合标准
    lround
    是不错的选择。