【问题标题】:Confusion about precision problems with byte关于字节精度问题的困惑
【发布时间】:2016-03-21 08:39:13
【问题描述】:

我不明白以下 Java 代码背后的逻辑以及为什么第一行有效,而其他代码则不然:

//works
byte b = 50 * 2;

//throws precision error
byte b = 50;
b = b * 2;

//throws precision error
byte b = 100 * 2;

【问题讨论】:

  • @StigTore:从 -128 到 127,2 不起作用,因为 b * 2int

标签: java byte type-conversion


【解决方案1】:

@Jon Skeet 是的,第二个也给出了异常,因为 java 将隐式向上转换应用于这种情况意味着 b*50 的输出是 100,但它是 int 类型,所以你必须向下转换为字节..

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2016-04-29
    • 2019-05-17
    • 2020-03-06
    • 2016-03-16
    相关资源
    最近更新 更多