关于double的问题

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

weibo_艧叆濣_03653610

2017-08-24 20:59

	//两者区别
	double avg=sum/4;
	double avg=sum/4.0;


写回答 关注

6回答

  • BESTTOM
    2017-10-31 22:49:30

    我用的是float avg=(age1+age2+age3+age4)/4;  可以算出平均年龄26.0,但是4后面不应该加个f吗?如下:

    float avg=(age1+age2+age3+age4)/4f;  就会报错。

  • qq_高级灰_0
    2017-09-18 21:56:42

    所以那个4.25是本身是没算错误的  只是表示方法不同是吗

  • leowei
    2017-08-27 23:18:14

    4 和4.0 在计算机中 根本不是一个数  小数二进制是不准确的

  • leowei
    2017-08-27 23:15:09

    4 个人 你用4.0 

    服了


    用下面 这个算就行了

    double avg=sum/4;

    没有必要纠结这个问题。

    实际上,不是运算本身会出错,而是计算机根本就不能精确的表示很多数,比如0.1这个数。

    计算机是用一种二进制格式存储小数的,这个二进制格式不能精确表示0.1,它只能表示一个非常接近0.1但又不等于0.1的一个数。

    数字都不能精确表示,在不精确数字上的运算结果不精确也就不足为奇了


  • 慕的地2097853
    2017-08-24 21:40:52

    可以自己试试看,就知道区别在哪里了

    weibo_... 回复慕的地209...

    恩恩~是int的

    2017-08-26 20:58:02

    共 3 条回复 >

  • 慕粉4099988
    2017-08-24 21:23:47

    sum/4.0;可以自动转换成double类型

    weibo_...

    可是前者是26.0,后者是26.25?为什么呀?

    2017-08-24 23:08:24

    共 1 条回复 >

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

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

1166354 学习 · 17590 问题

查看课程

相似问题