float和double使用注意问题

注意区别,从原始角度出发

1.  float单精度, double是双精度(double更细)

2. 那么必然double类型会更占空间(8字节),(float,4个字节)

3.就会导致CPU处理两种类型的速度出现差异(float,小,就更快),(double大,慢一点)

那么可以得出,当我们对精度要求非常高,不能因为丢失精度而导致一点点误差,就必须用double类型来定义数据。

练习:

然后通过条件判断BMI的范围,打印出是超重还是正常
 * BMI<18.5     过轻
 * 18.5<=BMI<24  正常
 * 24<=BMI<27  过重
 * 27<=BMI<30  轻度肥胖
 * 30<=BMI<35  中度肥胖
 * 35<=BMI     重度肥胖

可以自己测试一下,算出来的BMI,double会比float小数点后尾数更多。(精度更高)

package org.example;

import java.util.Scanner;
/**
 * Description
 * Create by ${USER}
 * Date ${DATE} ${TIME}
 */

/**
 * 使用Scanner收集你的身高体重,并计算出你的BMI值是多少
 *
 * BMI的计算公式是 体重(kg) / (身高*身高)
 *
 * 比如xx的体重是72kg, 身高是1.69m,那么这位同学的BMI就是
 * 72 / (1.69*1.69) = ?
 *
 * 然后通过条件判断BMI的范围,打印出是超重还是正常
 * BMI<18.5     过轻
 * 18.5<=BMI<24  正常
 * 24<=BMI<27  过重
 * 27<=BMI<30  轻度肥胖
 * 30<=BMI<35  中度肥胖、
 * 35<=BMI     重度肥胖
 */
public class Main {
    public static void main(String[] args) {
//        double BMI=0.0;
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("请输入身高(m):");
//        double tall = scanner.nextDouble();
//        System.out.println("请输入体重(kg):");
//        double weight = scanner.nextDouble();
        float BMI=0f;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入身高(m):");
        float tall = scanner.nextFloat();
        System.out.println("请输入体重(kg):");
        float weight = scanner.nextFloat();
        BMI=weight/(tall*tall);
        System.out.println("当前你的BMI是"+BMI);
        if(BMI<18.5){
            System.out.println("体重过轻");
        }
        else if (BMI>18.5 & BMI<24){
            System.out.println("正常范围");
        }
        else if(BMI>24 & BMI<27){
            System.out.println("体重过重");
        }
        else if(BMI>27 & BMI<30){
            System.out.println("体重轻度肥胖");
        }
        else if(BMI>30 & BMI<35){
            System.out.println("体重中度肥胖");
        }
        else if(BMI>35){
            System.out.println("重度肥胖");
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值