JAVA中double精度问题案例

JAVA基础

每日记录一个java程序


身高预测问题:

其实我们可以通过父母的身高大致推断出子女的身高,假定父母与子女的身高遗传关系如下:
​ 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
​ 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
那已知:现有父亲身高175CM,母亲身高160CM。
请将预测的子女身高打印输出


package test;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * @program: test
 * @description: 程序入口类
 * @author: yu zhi(towisdom)
 * @create: 2022-03-28 13:02
 */
public class App {

    public static void main(String[] args) {

        double m = 160;
        double f = 180;
        BigDecimal big1 = new BigDecimal(160);
        BigDecimal big2 = new BigDecimal(180);
        Shengao(m,f);
        Shengao2(big1,big2);
    }
    /*  其实我们可以通过父母的身高大致推断出子女的身高,假定父母与子女的身高遗传关系如下:
        儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
        女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
            那已知:现有父亲身高175CM,母亲身高160CM。*/
    public static void Shengao(double m, double f) {
        //3.计算儿子身高
        double sonHeight = (m + f) * 1.08 / 2;
        //4.计算女儿身高
        double daughterHeight = (m * 0.923 + f) / 2;
        //5.打印输出最终计算的结果
        List<Object> list = new ArrayList();
        List<String> listq = new ArrayList();

        System.out.println("儿子预计身高" + sonHeight + "厘米");
        System.out.println("女儿预计身高" + daughterHeight + "厘米");


    }
    public static void Shengao2(BigDecimal m, BigDecimal f) {
        //3.计算儿子身高
        BigDecimal multiply = new BigDecimal(1.08);
        BigDecimal divide = new BigDecimal(2);
        BigDecimal sonHeight = ((m .add(f)) .multiply(multiply)).divide(divide).setScale(2,BigDecimal.ROUND_DOWN) ;
        //4.打印输出最终计算的结果
        List<Object> list = new ArrayList();
        List<String> listq = new ArrayList();

        System.out.println("儿子预计身高" + sonHeight + "厘米");


    }

}

学习时间:

`每日半小时


总结:

  • java代码double小数点精度问题,BigDecimal的加减乘除及它的方法使用,如下图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值