今天在编程的过程中,发现了一个问题,发现Java在字符串比较这一块和我们想的不是一样。
String a =new String("fwe");
String b =new String("fwe");
if(a==b){
System.out.println("对吗");
}
if(a.equals(b)){
System.out.println("对");
}
执行结果是:对。这里面有个引用和内容的比较。引用表示的是内存中的一块地址,内容表示这个地址中存放的数据。(硬件里面对应的就是地址线上传输,数据线上传输)。“==”比较的是两个地址是否相等,显然两块地址不一样。equals比较的是内容,两个内容相同。
对于double 如何变为两位小数,并转换为String变量,常用方法:
double resultPay = 3.1245;
DecimalFormat df = new DecimalFormat("###.##");
String pay =String.valueOf(df.format(resultPay));