Java数据类型

你知道哪些数据类型转换方式?

  1. 自动类型转换(隐式转换):当目标类型的范围大于源类型时,Java会自动将源类型转换为目标类型,不需要显式的类型转换。例如,将int转换为1ong、将float转换为double等。
  2. 强制类型转换(显式转换):当目标类型的范围小于源类型时,需要使用强制类型转换将源类型转换为目标类型。这可能导致数据丢失或溢出。例如,将long转换为int、将double转换为int等。语法为:目标类型变量名=(目标类型)源类型。
  3. 字符串转换:Java提供了将字符串表示的数据转换为其他类型数据的方法。例如,将字符串转换为整型int,可以使用Integer.parseInt()方法;将字符串转换为浮点型double,可以使用Double.parseDouble()方法等。
  4. 数值之间的转换:Java提供了一些数值类型之间的转换方法,如将整型转换为字符型、将字符型转换为整型等。这些转换方式可以通过类型的包装类来实现,例如Character类、Integer类等提供了相应的转换方法。

类型互转会出现什么问题吗?

  • 大转小:数据丢失
  • 小转大:数据溢出
  • 浮点数转换:精度损失
  • 类型转换:类型不匹配

为什么用bigDecimal不用double?

double会出现精度丢失,二进制不能准确表示一些如0.1的小数。

Decimal是精确计算。十进制计算,由于浮点数精度丢失,所以使用字符串作为参数,而不是直接使用浮点数值。

System.out.println(0.05 + 0.01);//double浮点计算,精度丢失
BigDecimal num1 = new BigDecimal("0.1");//decimal传入字符串,十进制保证精度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值