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的加减乘除及它的方法使用,如下图