Java可能损失精度

全部回答3
默认 最新
  • arr[index-1]是char型的,当char进行运算时,会提升为int型,所以 arr[index-1]+arr[index-2]的结果是一个整型,而 arr[index]是一个char型,将一个int型赋给char型是会丢失精度的,毕竟char占一个字节而int占4个字节。
    0 点赞
  • char A='a'+3; a和3都是char类型的相加,没问题int i=3; 定义int 类型的变量i的值为3char B='a'+i; 这种写法是错误的,int类型占用4个字节,char类型占用2个字节,JAVA是不容许int自动转换为char类型的如果要强制转换是要这样写的char B=(char) ('a'+i);但是这样会损失精度的int的2进制是32位char的2进制是16位int强制转换为char的话,JAVA只截取int的32位的后16位,精度就这样损失了
    0 点赞
  • 第一个是加上一个数值,3并没有分配内存空间 第二个是为3申请了一个int型的空间4个字节 而char是2个字节,int 和 char 相加会损失精度
    0 点赞

没有更多内容了

返回顶部
产品求购 求购