Java 当我输入十进制小时数时,为什么它会给我错误?
抱歉,伙计们,这是我编程的第一周,我的任务是设计一个程序,根据用户输入计算定期工资和加班工资,但当我把5.5小时或费率计算出来时,它会给我带来错误,我真的不明白为什么 如果有办法修复错误,那么如何去掉输出整数末尾的.0?非常感谢,老师在我上AP CS的时候以为我们都知道了,这是去年“入门课”的复习,所以我有点不知所措,如果还有时间,你能解释一下“双倍”背后的机制吗?据我所知,这意味着你可以使用小数而不是整数,在这里你只能把整数编码 `Java 当我输入十进制小时数时,为什么它会给我错误?,java,Java,抱歉,伙计们,这是我编程的第一周,我的任务是设计一个程序,根据用户输入计算定期工资和加班工资,但当我把5.5小时或费率计算出来时,它会给我带来错误,我真的不明白为什么 如果有办法修复错误,那么如何去掉输出整数末尾的.0?非常感谢,老师在我上AP CS的时候以为我们都知道了,这是去年“入门课”的复习,所以我有点不知所措,如果还有时间,你能解释一下“双倍”背后的机制吗?据我所知,这意味着你可以使用小数而不是整数,在这里你只能把整数编码 ` import javax.swing.JOptionPane
import javax.swing.JOptionPane;
公费
{
公共静态void main(字符串[]args)
{
字符串s1、s2;
双倍数字1,数字2;
s1=JOptionPane.showInputDialog(“输入工作小时数”);
s2=JOptionPane.showInputDialog(“输入每小时的费率”);
number1=Integer.parseInt(s1);
number2=Integer.parseInt(s2);
双elseregularp=(40*number2);
双调节器P=(1号*2号);
双小时=(数字1-40);
双othourspay=(数字2*15/10.0);
如果(number1integer.parseInt(…)接受的字符串值不是正确的输入值,请将其更改为parseDouble,以使其正常工作
修改后的最终代码
integer.parseInt(…)已更改为Double.parseDouble(…)
import javax.swing.JOptionPane;
公费
{
公共静态void main(字符串[]args)
{
字符串s1、s2;
双倍数字1,数字2;
s1=JOptionPane.showInputDialog(“输入工作小时数”);
s2=JOptionPane.showInputDialog(“输入每小时的费率”);
//number1=Integer.parseInt(s1);
//number2=Integer.parseInt(s2);
number1=Double.parseDouble(s1);
number2=Double.parseDouble(s2);
双elseregularp=(40*number2);
双调节器P=(1号*2号);
双小时=(数字1-40);
双othourspay=(数字2*15/10.0);
if(number1)Integer.parseInt(…)
方法只解析整数字符串,不解析浮点数学字符串。为此,您需要Double.parseDouble(…)
。首先,总是告诉我们你的错误。没有人想猜测或试图阅读代码来找出错误。其次,找出与这些错误中给出的代码对应的代码行。第三,阅读这些错误并试图找出它们。大多数错误不难理解,并且是自我描述的。最后,看看代码,看看你在说什么这样做甚至是有道理的。
import javax.swing.JOptionPane;
public class Salary
{
public static void main(String[] args)
{
String s1, s2;
double number1, number2;
s1=JOptionPane.showInputDialog("Enter the number of hours worked");
s2=JOptionPane.showInputDialog("Enter the rates per hour");
number1 = Integer.parseInt ( s1);
number2 = Integer.parseInt ( s2);
double elseregularp = ( 40*number2);
double regularp = ( number1*number2);
double othours = (number1-40);
double othourspay = ( number2* 15/10.0);
if( number1 <= 40)
{
System.out.println("YOU WORKED "+number1+" HOURS" );
System.out.println("YOU EARNED $"+number1 * number2+" REGULAR PAY");
}
else
{
System.out.println("YOU WORKED " + number1+" HOURS");
System.out.println("YOU EARNED $"+elseregularp+" REGULAR PAY");
System.out.println("AND $" +(othours)*(othourspay)+ " IN OVERTIME");
System.out.println("YOUR TOTAL CHECK IS $" + ((elseregularp)+(othours)*(othourspay)));
}
}
}
import javax.swing.JOptionPane;
public class Salary
{
public static void main(String[] args)
{
String s1, s2;
double number1, number2;
s1=JOptionPane.showInputDialog("Enter the number of hours worked");
s2=JOptionPane.showInputDialog("Enter the rates per hour");
// number1 = Integer.parseInt ( s1);
// number2 = Integer.parseInt ( s2);
number1=Double.parseDouble(s1);
number2=Double.parseDouble(s2);
double elseregularp = ( 40*number2);
double regularp = ( number1*number2);
double othours = (number1-40);
double othourspay = ( number2* 15/10.0);
if( number1 <= 40)
{
System.out.println("YOU WORKED "+number1+" HOURS" );
System.out.println("YOU EARNED $"+number1 * number2+" REGULAR PAY");
}
else
{
System.out.println("YOU WORKED " + number1+" HOURS");
System.out.println("YOU EARNED $"+elseregularp+" REGULAR PAY");
System.out.println("AND $" +(othours)*(othourspay)+ " IN OVERTIME");
System.out.println("YOUR TOTAL CHECK IS $" + ((elseregularp)+(othours)*(othourspay)));
}
}