面试题.01

面试题.01

1. 浮点型精度丢失?怎么解决?
import java.math.BigDecimal;

public class Test_MST01 {

	public static void main(String[] args) {
		float f1 =2.3f;
		float f2 =2.5f;
		System.out.println(f1-f2);//-0.20000005

		//如果在项目中,涉及到敏感的的数字,不建议使用float/double
		//建议使用BigDecimal,替换到浮点类型
		//建议使用参数为String类型的构造方法,用double类型的构造方法还是会有问题
		BigDecimal f3=new BigDecimal("555.55");
		BigDecimal f4=new BigDecimal("555.56");
		
		System.out.println(f3.subtract(f4));//-0.01 subtract减法运算 
	}

}
为什么浮点型精度会丢失?  
计算机识别的是二进制的形式,对于小数使用二进制不能够精确表示,只能接近值.
    
解决方式:
可以使用BigDecimal ,替换掉浮点类型,定义完浮点类型变量后再通过BigDecimal 类提供的算术方法进行操作,建议使用参数为String类型的构造方法.
2. int的大小?
int4个字节  32(1字节=8)  范围: -231次方到+231次方-1
int 类型变量数值最大是2147483647(10)
//在做用户登录界面时用户号码就不能用int类型
3. byte的大小?最大值+1的结果会是怎样?
范围: -128 ~ 127
    
public class Test_MST02 {
	public static void main(String[] args) {
		byte x=-128;
		//		范围-128~127
		//		--x,表示的是在原来的那个值的基础上,-1;
		System.out.println(--x);//127

		byte y=127;
		System.out.println(++y);//-128	
	}

}
4. int 和 char是否可以相互转换?
public class Test_MST03 {

	public static void main(String[] args) {
		//数字转字符
		int num=65;
		char c=(char) num;
		System.out.println(c);//A
		
		//字符转数字
		char c2='A';
		int num2=c2;
		System.out.println(num2);//65
		
		//字符转字符串
		char c3='A';
		String string=c3+"";
		System.out.println(string);//"A"
		System.out.println(string.getClass());//class java.lang.String

	}

}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值