嘻嘻你好呀 2021-07-16 23:15 采纳率: 100%
浏览 45
已采纳

Java的double转int后会造成的数据丢失吗

img
运行结果

img

不知道为什么2.28 进去之后就会丢失0.01


package com.xiaoz.classTest;

import java.util.Scanner;

public class Class009 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入美元(小数点后面最多有两位):");
        double money = sc.nextDouble();
        int rp = remainingPenny(money); // rp : remainingPenny 剩余一分钱
        // int rp = remainingPenny(2.28);
        System.out.println("剩下一分币的个数为:" + rp);
    }

    private static int remainingPenny(double money) {
        // 将美元转换成分 1美元 = 100分  
        int rp = (int) ((money) * 100);
        boolean flag = true;
        while (flag) {
            // rp : remainingPenny 剩余一分钱
            if (rp >= 100) {
                // 1美元
                rp = moneyCon(rp, 100);
                flag = judgeMoneyZero(rp);
            } else if (rp >= 25 && rp < 100) {
                // 2角5分
                rp = moneyCon(rp, 25);
                flag = judgeMoneyZero(rp);
            } else if (rp >= 10 && rp < 25) {
                // 1角币
                rp = moneyCon(rp, 10);
                flag = judgeMoneyZero(rp);
            } else if (rp >= 5 && rp < 10) {
                // 5分币
                rp = moneyCon(rp, 5);
                flag = judgeMoneyZero(rp);
            } else {
                // 剩下1分币的个数
                flag = false;
            }
        }
        return rp;
    }
    
    // 判读当前剩下的币是否为0 如果为0,结束while循环
    private static boolean judgeMoneyZero(int rp) {
        if (rp == 0) {
            return false;
        } else {
            return true;
        }
    }

    // 计算剩下 1分币
    private static int moneyCon(int rp, int rate) {
        rp -= (rp / rate) * rate;
        return rp;
    }

}

  • 写回答

2条回答 默认 最新

  • 关注

    这种数据的处理一般要把double类型乘以100,转换为整数进行处理,处理完成后再缩小100倍,加上小数点。

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

报告相同问题?

问题事件

  • 已采纳回答 7月17日
  • 创建了问题 7月16日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失