Is scientific notation interpreted as int or float?

北战南征 提交于 2019-12-22 04:00:15

问题


If I hardcode a number in my code using the scientific notation (e.g. 1e9) what will the type of that number be (int, long, float, double..)?

When the significand or the exponent are floating point numbers it can't be an integer obviously, but what in the above case?


回答1:


The e makes it a floating-point literal. From the JLS (§3.10.2. Floating-Point Literals):

A floating-point literal is of type float if it is suffixed with an ASCII letter F or f; otherwise its type is double and it can optionally be suffixed with an ASCII letter D or d (§4.2.3).

Therefore, 1e9 of type double, as is 1e9d. On the other hand, 1e9f is of type float.




回答2:


These will usually be of type double. If you put an f (of F) behind it, it's a float.

double d = 1e9; 
float f = 1e9f;



回答3:


It will be considered as a floating point literal, and without a trailing f or F it will be a double.

Integer literals can't use scientific notation.




回答4:


It'll be 'double' unless you use 'f' or 'F' then it'll be float literal.




回答5:


It is better to use Double. Because a it has decimal floating point is a computer arithmetic system closely related to scientific notation. for example: 0.000 000 007 51 in scientific notation it is 7.51×10-9. when you use it as int, 7.51 would be 7 while when you use int it will be 7.51.



来源:https://stackoverflow.com/questions/15527198/is-scientific-notation-interpreted-as-int-or-float

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!