问答详情
源自:3-2 Java中的算术运算符

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

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。 为什么会这样

提问者:qq_慕仔3192846 2019-04-12 21:09

个回答

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

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

  • 刀锋战士十来个
    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