类型转换是将一个值从一种类型更改为另一种类型的过程。转换过程要做到“勿以小杯盛大物”。
低精度数据放入高精度数据中永远不会溢出。
两种转换方式:
隐式转换(自动转换)
显式转换(强制转换)
从低级类型向高级类型的转换,系统将自动执行,程序员无需进行任何操作。这种类型的转换称为隐式转换。
【示例】
byte a=8;
int b=a;
long c=b;
double d=c;
在char的取值范围之内,与int是相互兼容的。
举个例子:
当把高精度的变量值赋给低精度的变量时,必须使用显式类型转换运算。
【语法】(类型名)要转换的值
int a;
tyte b=(byte)a;
[显式转换导致精度损失]
一:数据失准。
float f=(float)3.1415926
我们可以发现数据最后少了一个6,导致数据失准。
二:小数点丢失。
int i=(int)f;
我们可以发现,小数点后面的数据全没了。
三.数值越界溢出
byte b=(byte)129
可以发现一个整数强制转换后成为了一个负数,这就是数值溢出的效果。
使用char型声明’a'-'g',然后输出他们相加后的结果。
public class text1 {
public static void main(String[] args) {
char a='a';
char b='b';
char c='c';
char d='d';
char e='e';
char f='f';
char g='g';
System.out.println("相加后的结果为"+(a+b+c+d+e+f+g));
}
}
一辆货车运输箱子,载货区宽2米,长4米,一个箱子宽1.5米,长1.5米,请问载货区一层可以放多少个箱子。
public class text1 {
public static void main(String[] args) {
int wide=2,high=4;
float a=1.5F,b=1.5F;
int c=(int)(wide/a);
int d=(int)(high/b);
System.out.println("载货区一层可以放"+(c*d)+"个箱子");
}
}
先使用char型变量定义“马”“象”“卒”这三个棋子,在输出“马走日,象走田,小卒一去不复返”的象棋口诀。
public class text1 {
public static void main(String[] args) {
char ma='马';
char xiang='象';
char zu='卒';
System.out.println(ma+"走日,"+xiang+"走田,"+"小"+zu+"一去不复返。");
}
}
向张三卡号为1234567890987654321的银行卡里面汇款10000元。控制台输出如下所示的汇款单。
public class text1 {
public static void main(String[] args) {
String data="2021-03-10";
String name="张三";
String classm="RMB";
String ID="1234567890987654321";
double count=10000.0;
String a="010";
int b=12345;
System.out.println(" 中国工商银行 ");
System.out.println("------------------");
System.out.println("日期: "+data);
System.out.println("户名: "+name);
System.out.println("账号: "+ID);
System.out.println("币种: "+classm);
System.out.println("存款金额: "+count);
System.out.println("存款序号: "+a);
System.out.println("柜员号: "+b);
System.out.println("------------------");
}
}
public class text1 {
public static void main(String[] args) {
System.out.println(" 个人基本信息 ");
System.out.println("------------------");
System.out.println("姓名: "+"李四");
System.out.println("性别: "+"男");
System.out.println("年龄: "+"25");
System.out.println("身高: "+"1.76米");
System.out.println("体重: "+"65.5千克");
System.out.println("是否已婚: "+"false");
}
}
小李每月的工资是4500元,每月的奖金是1000元,每月要缴纳的五险一金合计是500元,计算小李每月的最终收入是多少?
public class text1 {
public static void main(String[] args) {
int count=4500;
int reward=1000;
int insure=500;
System.out.println("小李月收入为:"+(count+reward-insure));
}
}
应用除法运算符可以计算两个数的商,应用取余运算符可以计算两个数相除所得的余数。根据这两个运算符做一个数字转置的练习,将123的各数字顺序前后颠倒后输出。
当分数大于等于60时,成绩及格,否则不及格。现一学生的分数是80分,使用三元运算符判断这名学生的成绩能否及格。
public class text1 {
public static void main(String[] args) {
int score=80;
System.out.println(score>=60?"该学生及格":"该学生不及格");
}
}
向手机中充值10元。通话0.2元/分钟,通话时长已有30分钟;流量已使用10MB,流量费用为0.3元/MB。计算话费余额还可以通话的时长 。
public class text1 {
public static void main(String[] args) {
int count=10;//总话费
double a=0.2*30;//通话消耗的费用
double b=0.3*10;//流量消耗的费用
double c=(count-a-b)/0.2;
System.out.println("花费余额还可以通话"+c+"分钟");
}
}
一货车的车厢长400厘米、宽160厘米、高30厘米,现有100个直径约为23厘米的西瓜。问:这辆货车满载时能装多少个西瓜?实际能装多少个西瓜?
public class text1 {
public static void main(String[] args) {
final double PI=3.14;
int length=400;
int wide=160;
int high=30;
int D=23;
int sum=(wide/D)*(high/D)*(length/D);
System.out.println("满载时可以装:"+sum+"个");
System.out.println("实际可以装"+(sum>=100?100:sum)+"个");
}
}