青亭浅 2023-02-25 17:14 采纳率: 88.2%
浏览 24
已结题

提交后显示部分错误,如何解决?

img


img


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        double a=input.nextDouble();
        int b=(int)a/10;
        int c=((int)a%10)/5;
        int d=0;
        if(c==0){
          d=((int)a%10);
        }
        else {
            d=((int)a%10)-5;
        }
        int e=(int)(a*100-b*1000-c*500-d*100);
        int f=(int)e/50;
        int j=((int)e%50)/10;
        int h=((int)e%50)%10/2;
        int i= (int) (e-f*50-j*10-2*h);
            System.out.println(b+" 张十元");
            System.out.println(c+" 张五元");
            System.out.println(d+" 张一元");
            System.out.println(f+" 个五角");
            System.out.println(j+" 个一角");
            System.out.println(h+" 个贰分");
            System.out.print(i+" 个壹分");;
    }
}

提交后显示部分错误

  • 写回答

3条回答 默认 最新

  • pzzhao 2023-02-25 18:55
    关注

    你这个程序输入9.87,得到的结果是

    0 张十元
    1 张五元
    4 张一元
    1 个五角
    3 个一角
    3 个贰分
    0 个壹分
    

    明显错了
    原因是计算e的时候得到的结果是 86.99999999999989 强转之后就成了86。
    所以说还是精度损失的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上