大家好,我现在用c ++工作了很长时间,这是一个困扰我的问题。
我尝试评估pow(2,30),但答案是这样的1.07374e + 009, 而不是预期的整数形式1073741824。我尝试将其强制转换为int或 长,但事实是,有时它会将其截断为较低的值。对于 例如,1073741824有时会被截断为1073741823。我该怎么办?另外,如果数字不是2,应该如何确保以正确的格式得到答案。
答案 0 :(得分:1)
如果确定始终计算2的幂,则最好使用左移位运算符,因为它与pow()函数相比非常有效。看看这个片段。就像魅力一样。
#include <iostream>
int main()
{
long pow_value = (1L << 30); //Equivalent to calculating 2^30
printf("%ld",pow_value);
return 0;
}
答案 1 :(得分:0)
result = {
"other": $('div.article__header h1').text(),
"datestamp": $('span.article_info__published').text(),
"more": $('meta[name="twitter:image"]').attr("content"),
"assorted": $('figcaption.caption').text(),
};
仅适用于浮点数,当您输出较大的浮点数时,var myDate = new Date("02 December 2016 18:00pm");
document.write(myDate);
运算符会自动以科学计数法打印它。将其强制转换为整数类型将不起作用,因为浮点数不是100%精确且具有floating point error。
如果仅需要2的幂,则可以使用移位。 pow()
等于<<
的2乘以第a << b
次幂。向左移动某些内容将其乘以2的二进制幂,就像移动小数点将数字乘以10的十进制的幂一样。如果您需要其他基础的功能,则可以使用this post中的功能。