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
是不错的选择。