float赋值后加F和不加F,为何输出不一样

来源:3-2 Java中的算术运算符

qq_慕仔3192846

2019-04-12 21:09

public class HelloWorld{

    public static void main(String[] args) {

int age1=24;

int age2=18;

int age3=36;

int age4=27;

int sum=age1+age2+age3+age4;

float avg=sum/4f;

int minus=age1-age2;

int newAge=--age1;

   System.out.println("年龄总和:"+sum);

    System.out.println("平均年龄:"+avg);

System.out.println("年龄差值:"+minus);

System.out.println("自减后的年龄:"+newAge);


}

}

输出的avg=26.25,  如果把float avg=sum/4f;中的f去掉结果就变成了 avg=26。 为什么会这样

写回答 关注

2回答

  • 慕函数2274273
    2019-04-12 21:30:54
    已采纳

    536888bb0001b9f803900106.jpg没有加f,不算是float类型

    qq_慕仔3...

    不是很理解。没有加F的话 那是属于什么类型的,还要char赋值是不加‘’和加‘’出来的结果有什么不同吗。没搞懂

    2019-04-12 21:38:36

    共 1 条回复 >

  • 刀锋战士十来个
    2019-04-14 19:24:23

    加了f相当于把分母转换成浮点数,精度可以到达小数点后面,像是5/2.0=2.5

    不加f相当于将两个整数相除的结果转换为float型,像是5/2=2,2*1.0=2.0

    (个人想法,勿喷!)

    但double就不一样,加不加L都是2.0,不知道为什么

    char加不加‘’结果是不一样的

    加了‘’后就是单个字符,单引号里是啥就是啥

    不加‘’就变成了一个ASCII值了,打印出来的话是一个符号,控制台可能识别不了,打印出一个带问号的方框


    char c=55; 

    System.out.println("shuchu c="+c);

    输出 shuchu c=7  输出的是55的ASCII值


    char c='5'; 

    System.out.println("shuchu c="+c);

    输出 shuchu c=5 输出的是字符5


Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题