四舍五入:四舍五入是一种精确度的计数保留法,与其他方法本质相同。但特殊之处在于,采用四舍五入,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一:假如0~9等概率出现的话,对大量的被保留数据,这种保留法的误差总和是最小的。这也是我们使用这种方法为基本保留法的原因。

一、数学上的四舍五入举几个例子:

1.3 => 1

1.5 => 2

-1.3 => -1

-1.5 => -2

二、计算机中的四舍五入PHP语言:跟数学上的四舍五入一样。

Java语言:

Math.round(-11.5) = -11【为什么呢???】

tips:看了一下java底层代码。直接上代码( 复习:>>运算符的意义。以下代码主要看 return ((r >> shift) + 1) >> 1的解释)public static long round(double a) {

long longBits = Double.doubleToRawLongBits(a);//获取浮点位数 -2147483648

long biasedExp = (longBits & DoubleConsts.EXP_BIT_MASK)

>> (DoubleConsts.SIGNIFICAND_WIDTH - 1);

long shift = (DoubleConsts.SIGNIFICAND_WIDTH - 2

+ DoubleConsts.EXP_BIAS) - biasedExp;

if ((shift & -64) == 0) { // shift >= 0 && shift < 64

// a is a finite number such that pow(2,-64) <= ulp(a) < 1

long r = ((longBits & DoubleConsts.SIGNIF_BIT_MASK)

| (DoubleConsts.SIGNIF_BIT_MASK + 1));

if (longBits < 0) {

r = -r;

}

// In the comments below each Java expression evaluates to the value

// the corresponding mathematical expression:

// (r) evaluates to a / ulp(a)

// (r >> shift) evaluates to floor(a * 2)

// ((r >> shift) + 1) evaluates to floor((a + 1/2) * 2)

// (((r >> shift) + 1) >> 1) evaluates to floor(a + 1/2)

return ((r >> shift) + 1) >> 1;//注意这里,是右移shift 向小方向取整 再加1(相当于向大方向取整)。再右移向小方向取整(这一步相当于>>>1)。

} else {

// a is either

// - a finite number with abs(a) < exp(2,DoubleConsts.SIGNIFICAND_WIDTH-64) < 1/2

// - a finite number with ulp(a) >= 1 and hence a is a mathematical integer

// - an infinity or NaN

return (long) a;

}

}

java不四舍五入_JAVA-四舍五入之坑相关推荐

  1. 在java里四舍五入怎么做_利用java怎么实现一个四舍五入功能

    利用java怎么实现一个四舍五入功能 发布时间:2020-12-02 16:46:08 来源:亿速云 阅读:68 作者:Leah 这期内容当中小编将会给大家带来有关利用java怎么实现一个四舍五入功能 ...

  2. java joinpoint教程_Java的教程

    Java编程语言 Java编程语言中,左侧的导航栏(Java编程语言),可以快速定位文章的内容.这篇文章主要汇总以下: Java编程语言学习:Java的概述,Java的基础,Java面向对象的概念,J ...

  3. java 小坑_关于Java子父类关系的小坑

    原标题:关于Java子父类关系的小坑 学过JavaSE的都知道java类在初始化的时候,如果存在直接父类,是先初始化父类,然后才初始化子类. 子类拥有父类所有的非私有化成员,非私有的成员不仅仅包括pu ...

  4. 用java的io做一个代码计数器,如何制作Java页面计数器_java

    大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...

  5. php怎么四舍五入,php 四舍五入的三种实现方法

    这篇文章主要为大家详细介绍了php 四舍五入的三种实现方法,具有一定的参考价值,可以用来参考一下. 对php 四舍五入的三种方法感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! php 四 ...

  6. java zip malformed_关于Java解压文件的一些坑及经验分享(MALFORMED异常)

    关于Java解压文件的一些坑及经验分享 就在本周, 测试人员找到我说现上的需求文档(zip格式的)无法预览了, 让我帮忙看看怎么回事. 这个功能也并不是我做的, 于是我便先看看线上日志有没有什么错误, ...

  7. matlab中将小数四舍五入,matlab 四舍五入 保留至指定小数(图)

    matlab 四舍五入 保留至指定小数(图) 07-23栏目:技术 TAG:matlab四舍五入 matlab四舍五入 https://www.jhua.orgcopyright jhua.org转载 ...

  8. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目

    课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...

  9. 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发

    今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...

  10. php 四舍五入,php四舍五入 js四舍五入方法 | 帮助信息-动天数据

    php四舍五入 js四舍五入方法 作者:dthost | 时间:2017-12-16 | 分类:未分类 | 6,286 次阅读 四舍五入是一种精确度的计数保留法,与其他方法本质相同.特殊之处在于,采用 ...

最新文章

  1. OQPSK:Offset Quadrature Phase Shift Keying偏移正交相移键控的MATLAB仿真/FPGA实现
  2. 使用JMH做Java微基准测试
  3. 使用 mono 编译 .NET Standard 应用
  4. mysql loose_简单谈谈MySQL的loose index scan
  5. 【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
  6. MySQL迁移至MariaDB
  7. IT餐馆—第四回 离职
  8. Data Lake Analytics: 基于OSS文件自动推断建表
  9. Gym 100733G No Negations
  10. day1 java基础回顾- 文件路径
  11. 【2017级面向对象程序设计寒假作业】第4次作业情况
  12. 如何查看VS命令行选项,并使用命令卸载VS
  13. excel密码破解软件Excel Password Unlocker下载和使用技巧(亲测有效!)
  14. 遭遇Excel的宏病毒
  15. window下xmind-pro-8破解版
  16. python下拉菜单无限营销工作室_Python生成流水线《无限拍卖》文字!
  17. 苹果订阅服务器端开发
  18. 数据分析与数据挖掘实战案例本地房价预测(716):
  19. JQuery__Tab实践
  20. Camtasia Studio2023mac电脑最新屏幕录制编辑工具

热门文章

  1. iis布置asp.net网站——服务应用程序不可用
  2. C++语言标准库functional中的函数对象,绝对是装B神器~
  3. 胡润2019中国人工智能企业百强榜:北京55家居首
  4. 计算机视觉,图像处理,图像分析,机器人视觉和机器视觉是彼此紧密关联的学科
  5. Docker容器运行后退出,怎么才能一直运行?
  6. 网易笔试题——计算机视觉_深度学习方向
  7. 中国工程院2019年院士增选第二轮候选人名单公布 李彦宏落选
  8. 入门机器学习,看这些材料就够了
  9. 3d饼图 vue_Vue+Echarts构建可视化大数据平台实战项目分享(附源码)(上)
  10. 画原理图和PCB图该注意什么?