我的c ++项目需要处理的行星质量数量不超过24位。他们是花车。相同的变量也可能是一个相对较小的数字(100),我尝试使用double和long,但是在使用G ++的Linux中进行编译时,我收到警告:警告:
整数常量的类型太大(默认情况下启用)。
也因为这个原因,我的计算不起作用。我想知道这种数字需要什么类型的变量。
我已经进行了研究,但结果变得干燥..仍然很抱歉,如果这个问题很常见。谢谢!
如果您有一段代码,例如:
double mass = 31415926535892718281828459;
那么您需要了解常数是一个整数。整个语句会将其转换为a,double
然后再放入,mass
但是在此之前您的方案失败了。
您需要告诉编译器它是类似的两倍:
double mass = 31415926535892718281828459.0;
第2.14节C++11
详细介绍了字面量及其定义方式。一组数字(第一个不是0
)由以下部分的规则捕获2.14.2 Integer literals
:
decimal-literal:
nonzero-digit
decimal-literal digit
(以开头的一组数字0
仍然是整数,仅由八进制数字而不是十进制数字组成)。
本节2.14.4 Floating literals
显示了如何指示编译器所需的代码,double
例如:
1.414
或15.
; 或者12e2
。或者,对于那里的语言律师:
浮点文字由整数部分,小数点,小数部分,e或E,一个可选带符号的整数指数以及一个可选类型后缀组成。整数和小数部分均由十进制(以10为基)的数字序列组成。整数部分或小数部分(不是全部)都可以省略;小数点或字母e(或E)和指数(不是全部)都可以省略。
除非后缀明确指定,否则浮动文字的类型为double。后缀f和F指定浮点数,后缀l和L指定长整数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句