mk1*_*k12 3 java floating-point double primitive-types long-integer
我明白"2.5"自动是双倍的,为了使它成为一个浮点数,我需要做"2.5F"(或者F应该是小写?),并且我应该使用浮点数,比方说,如果我有一个常数只需要2个小数位(如安大略省PST税的"0.08F"),但我不确定"12"是int还是long,但我知道"12L"是长的,但是"长" l = 12"和"long l = 12L"似乎编译成相同的东西,如果我想要最大的非浮点精度,我使用long,如果我知道我不需要超出int的限制,则使用int.
如果那里有不对的东西,请纠正我,并回答我的问题.
Yis*_*hai 14
12作为java中的常量是一个int.
long l = 12编译的原因是它会自动扩展为long.
编辑:关于你的评论,自动扩展没有任何问题,使用任何使你的代码更清晰的东西,但只是要知道当你对原语进行数学运算时发生了什么.例如:
int i = 1213;
long l = 112321321L * i;
Run Code Online (Sandbox Code Playgroud)
如果您没有将第一个数字显式地设置为long,则long将具有非常不同的值,因为Java会将其视为整数数学,并导致溢出.
如果在声明floats 时使用小写或大写,则没有任何区别.
...像安大略省PST税的"0.08F"
如果您使用这些字段作为货币,则应考虑使用BigDecimal. 有关更多详细信息,请参阅 Sun的此说明及其相关链接.
| 归档时间: |
|
| 查看次数: |
33287 次 |
| 最近记录: |