当用户输入月薪时,计算出对应的日薪(每月工作日22天)和年薪(1年13薪),并进行输出显示,如图所示:
import java.util.Scanner;//导入Scanner类
public class SalaryConversion {
public static void main(String[] args) {
double daySalary;//日薪
double monthSalary;//月薪
double yearSalary;//年薪
System.out.println("***薪资转换工具v1.0***");
System.out.print("请输入月薪(人民币):");
Scanner sc = new Scanner(System.in);//创建Scanner对象
daySalary = sc.nextDouble();//输入日薪
System.out.format("您的日薪:¥%.2fn",daySalary / 22);//输出日薪,小数点后保留两位
System.out.format("您的年薪:¥%,.2fn",daySalary * 13);//输出年薪,小数点后保留两位,含千位分隔符
}
}
运行结果
蕴含知识点
Java数据输入三部曲
①导包
import java.util.Scanner; //导包的动作必须出现在类定义的上面②创建对象
Scanner sc = new Scanner(System.in); //该句格式中,只有sc是变量名,可以改变,其余均不可改变。③接收数据
int a = sc.nextInt(); double b = sc.nextDouble(); String c = sc.next(); String d = sc.nextLine(); float e = sc.nextFloat();Scanner类中的数据输入方法
int nextInt()——>读取一个整数。
double nextDouble()——>读取一个浮点数。
String next()——>读取下一个单词(以空格作为分隔符)。
String nextLine()——>读取输入的下一行内容。
注意
String nextLine()是读取输入的下一行内容。需要考虑缓冲区的问题。
nextLine() 方法不能放在nextInt() 代码段的后面,其实,他不是跳过你了,而是他已经有内容了,内容就是 n(换行符)。因为 nextInt() 接收一个整型字符,不会读取 n,nextLine() 读入一行文本,会读入 n 字符。
【解决办法】
可以在 nextInt() 和 nextLine() 中间加一个 nextLine() 语句来接收这个 n 。
public class Example{
public static void main(String[] args) {
int money = 2021;
//直接打印数字
System.out.println(money);
//直接打印数字
System.out.format("%dn",money);
//总长度是10,默认右对齐
System.out.format("%10dn",money);
//总长度是10,左对齐
System.out.format("%-10dn",money);
//总长度是10,不够补0
System.out.format("%010dn",money);
//千位分隔符
System.out.format("%,10dn",money);
//保留5位小数
System.out.format("%.5fn",Math.PI);
}
}
运行结果



