小心使用浮点数进行比较
浮点数没有绝对的相等,只有近似的相等。Java中只有整数才有绝对的相等。
例如:
public class CompareUsingSub {
public static void main(String[] args){
double a = 9*3.1415926/7.56789*1.145926; // 浮点数运算
double b = 9*3.1415926/7.56789*1.145926; // 当两个浮点数的差小于一个我们规定的足够小的数
// 那么就可以看做他们是相等的
double equal = (a-b<0.00000001)&&(b-a<0.00000001);
System.out.println(equal);
}
}
结果:true
1、最好不要对浮点数进行相等比较。要用它们的差的绝对值与一个我们关心的精度进行比较,来判断两个浮点数是否相等。
2、编程中一般使用“||”和“&&”。
String————char串起的项链
char类型的变量代表一个字符,这个字符可以是英文字符,也可以是中文字符。
给字符变量赋值的语法是 “char变量名”+“=”+“‘”+“一个字符”+“’” 。
例如:char charA =‘A';
char charB =‘中';
错误写法:char charA = A;
这里将字符A赋值给char变量charA。但是Java却无从知道等号右边的A是什么意思:A是代表一个变量呢?还是代表一个字符A呢?所以,为了避免这种困惑,Java语法中规定,如果要表示一个字符,必须用一对单引号将这个字符括起来。单引号之间只能有一个字符,这是因为char变量只能储存一个字符。
在Java中,用双引号将一串字符括起来,这就创建了一个字符串。不要把字符串跟Java中的字符弄混了,字符是使用单引号的。字符串类型在Java中是使用String表示的。
可以认为,String类型就是将一定数量的char类型变量组装起来后形成一个新的类型。可以想象用线将char变量串成一个项链,然后就得到了一个String。
String类型的“加法”运算
与算术中的相加不同,对于字符串的相加其运算规则是将两个字符串的内容拼接起来。而且加法是字符串唯一允许的运算,是Java对字符串类型的“特殊照顾”。
例如:
public class UsingString {
public static void main(String[] args){
String emptyStr = ""; // String的长度可以是0到足够大
String str1 = "字符串中可以同时使用中文和English"; // 字符串中可以中英文混合使用
String str2 = "。"; // 对于字符串,即使只包含一个字符,也要用双引号
String plusStr = str1 + str2; // 字符串可以“相加”
System.out.println(plusStr);
}
}
结果:字符串中可以同时使用中文和English。
String类型与基本类型的“加法”运算
Java会帮我们把基本变量转换成的字符拼接到字符串中。当字符串和基本变量进行相加的时候,需要注意运算顺序。
例如:
public class StringAddPrimer{
public static void main(String[] args) {
int a = 5;
int b = 7;
String str1 = "将数字的字符拼接到字符串中" + a;
String str2 = a+b+"加法是从左到右运算的";
String str3 = "加法是从左到右运算的"+a+b;
String str4 = "我们可以使用括号改变运算顺序"+(a+b);
String str5 = "我们可以使用字符串将两个变量分开"+a+“”+b;
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
System.out.println(str5);
}
}
结果:将数字的字符拼接到字符串中:5
12加法是从左到右运算的
加法是从左到右运算的:57
我们可以使用括号改变运算顺序:12
我们可以使用空字符串将两个变量分开 57
网友评论