如何解决如何解决计算错误?
| 我正在尝试编写一个程序,该程序从用户读取2个数字并将它们相除。这是我到目前为止的代码:import java.util.Scanner;
public class divideByZero {
public static int quotient(int numerator,int denominator)
{
return numerator / denominator;
}
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
System.out.print(\"Please enter the first number: \");
int numerator = scanner.nextInt();
System.out.print(\"Please enter the second number: \");
int denominator = scanner.nextInt();
int result = quotient( numerator,denominator );
float result2 = (float)result;
System.out.printf(\"\\n The first number %d divided by the second number \"
+ \"%d = %f\\n\",numerator,denominator,result2 );
}
我的计算有问题。例如,当我输入3除以4时,得到的结果为0.000000。如何获得正确的结果到小数点后两位?
解决方法
将分子和分母转换为浮点数,然后再除法。
import java.util.Scanner;
public class divideByZero {
public static float quotient(float numerator,float denominator)
{
return numerator / denominator;
}
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
System.out.print(\"Please enter the first number: \");
int numerator = scanner.nextInt();
System.out.print(\"Please enter the second number: \");
int denominator = scanner.nextInt();
float result = quotient( (float) numerator,(float) denominator );
System.out.printf(\"\\n The first number %d divided by the second number \"
+ \"%d = %f\\n\",numerator,denominator,result );
}
, 以下更改将满足您的需求。
public static float quotient(int numerator,int denominator)
{
return (float)numerator / (float)denominator;
}
float result = quotient( numerator,denominator );
System.out.printf(\"\\n The first number %d divided by the second number \"
+ \"%d = %.2f\\n\",result2 );
您不能对int进行除法并获得小数int(没有这样的东西),因此必须使用浮点数进行除法并将其存储到浮点数中。 %.2f将其限制为2个小数位。
, 为什么不使用数据类型double而不是float?
这是一些格式为两位小数点的代码:
import java.text.*;
public class DecimalPlaces {
public static void main(String[] args) {
double d = 1.234567;
DecimalFormat df = new DecimalFormat(\"#.##\");
System.out.print(df.format(d));
}
}
, 由于将整数除以并将结果存储回整数,因此得到0.0000。要查看小数部分,可以将result声明为float变量。
在这种情况下,要打印2个小数,可以使用printf格式。
在C语言中,它将类似于%.2f。
基于这些错误,我认为您将从阅读有关数据类型(尤其是浮点数)的内容中受益。
, 如果将商方法的返回类型从int更改为float,它将不再将答案舍入为最接近的整数。
public static float quotient(int numerator,int denominator)
{
return (float) numerator / (float) denominator;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。