十进制输入错误java

十进制输入错误java,java,input,decimal,Java,Input,Decimal,十进制形式的答案是不正确的,但是如果(输入)答案是完整的数字,它就可以工作。十进制格式可以工作,但是如果用户以四舍五入的十进制形式输入答案,系统将打印错误。只有当答案不是四舍五入时,它才有效。请帮助:)我仍在学习编码,所以任何东西都是有用的 公共类生成器{ 公共静态void main(字符串[]args){ 扫描仪扫描=新扫描仪(System.in); /*打印10个随机数 随机数=新随机数(); 整数; 对于(int counter=1;counter您格式化答案以将其打印出来,但这是四舍五

十进制形式的答案是不正确的,但是如果(输入)答案是完整的数字,它就可以工作。十进制格式可以工作,但是如果用户以四舍五入的十进制形式输入答案,系统将打印错误。只有当答案不是四舍五入时,它才有效。请帮助:)我仍在学习编码,所以任何东西都是有用的

公共类生成器{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
/*打印10个随机数
随机数=新随机数();
整数;

对于(int counter=1;counter您格式化
答案以将其打印出来,但这是四舍五入的值,因此当您输入四舍五入的答案时,它将不等同于
答案
值,因为它是完整的、未舍入的双精度值,因此当出现四舍五入时,
x==answer
将始终失败

添加
answer
的打印语句将向您显示,这是您执行此操作时的输出

求解二次方程:5x²+6x-14
回答:1.7776388834631178
四舍五入1:1.7777
四舍五入2:-1.7776
输入答案:
1.7777
再试一次
输入答案:
1.7776388834631178
正确的

您将需要某种方法来比较输入答案和舍入答案,类似的方法会奏效

if(x == (double)Math.round(answer * 10000d) / 10000d)
这里的零数表示您要使用的小数数

if(x == (double)Math.round(answer * 10000d) / 10000d)