当前位置: 首页 > wzjs >正文

南山建站公司做app模板网站

南山建站公司,做app模板网站,wordpress名言插件,湖南企业seo优化目录 常见的舍入规则主流编程语言对比floor / ceil数字安全:浮点误差问题 常见的舍入规则 最近舍入:把一个数舍入为最接近的整数。分为四舍五入、四舍六入五成双 四舍五入 (Round Half Up): 这是我们日常生活中最熟悉的舍入方法。即四以下舍…

目录

  • 常见的舍入规则
  • 主流编程语言对比
  • floor / ceil
  • 数字安全:浮点误差问题

常见的舍入规则

  • 最近舍入:把一个数舍入为最接近的整数。分为四舍五入、四舍六入五成双
    • 四舍五入 (Round Half Up): 这是我们日常生活中最熟悉的舍入方法。即四以下舍去,五及五以上进位。例如:
      1.4 -> 1
      1.5 -> 2
      1.6 -> 2
      -1.5 -> -2 (通常是远离零舍入)
    • 四舍六入五成双 / 银行家舍入法 /最近偶数舍入 (Round Half to Even 或 Bankers’ Rounding):
      四以下舍去。六以上进位。
      当末位是“五”时: 看“五”前面的数字,如果是偶数,则舍去“五”(向偶数靠拢);如果是奇数,则进位(也向偶数靠拢)。
      例如:
      1.4 -> 1
      1.5 -> 2 (前面的1是奇数,进位变偶数2)
      2.5 -> 2 (前面的2是偶数,舍去变偶数2)
      1.6 -> 2

为什么会有“四舍六入五成双”?
“四舍六入五成双”主要应用于金融和科学计算领域,它的主要优点是在大量数据进行舍入时,可以减少累计误差。传统的“四舍五入”会有一个向上的偏向(因为“五”总是进位),而“四舍六入五成双”则能更好地平衡这种偏向,因为它一半的“五”会向上舍入,一半会向下舍入,使得总体误差更接近零。

主流编程语言对比

保留几位小数的情况时,只有JAVA、JS默认不是银行家算法。

编程语言默认浮点数舍入规则支持的舍入模式(内置/库)备注
C / C++IEEE 754 默认银行家舍入法C99 标准 fesetround() 可设置:
- FE_TONEAREST (默认)
- FE_DOWNWARD
- FE_UPWARD
- FE_TOWARDZERO
依赖硬件浮点单元(FPU)支持,程序可动态设置舍入模式。
JavaIEEE 754 银行家舍入法Math.round()四舍五入BigDecimal支持多种舍入模式:
- ROUND_HALF_UP
- ROUND_HALF_DOWN
- ROUND_HALF_EVEN
- ROUND_DOWN
- ROUND_UP 等
基本浮点类型遵循IEEE 754标准,BigDecimal可精细控制舍入。
PythonIEEE 754 银行家舍入法
round() 函数使用“四舍六入五成双”规则(即银行家舍入)
decimal模块支持多种舍入模式:
- ROUND_HALF_EVEN (默认)
- ROUND_HALF_UP
- ROUND_HALF_DOWN
- ROUND_UP
- ROUND_DOWN
- ROUND_CEILING
- ROUND_FLOOR 等
浮点数按硬件实现舍入,decimal支持高精度和多模式舍入。
JavaScript底层浮点数计算:IEEE 754 银行家舍入法无内置多舍入模式函数,Math.round()四舍五入只有Math.round(),无直接设置舍入模式的API。
GoIEEE 754 银行家舍入法标准库无暴露多种舍入模式,math.Round()为四舍五入浮点运算默认硬件实现舍入,额外舍入控制需手动实现。
C# (.NET)IEEE 754 银行家舍入法Math.Round() 默认银行家舍入
支持参数指定
decimal类型提供多种舍入方式,浮点数遵循IEEE标准。
RustIEEE 754 银行家舍入法f64::round() 是四舍五入,支持自定义舍入方式库依赖硬件浮点单元,实现更灵活的舍入需使用外部库。
SwiftIEEE 754 银行家舍入法提供多种舍入函数,如round(), floor(), ceil()浮点数操作依赖IEEE 754,支持标准舍入函数。
KotlinJVM 上运行,遵循 Java IEEE 754标准使用 Java 的舍入规则与Java相同,BigDecimal支持多种舍入模式。

floor / ceil

语言floor/ceil 所在模块
Pythonmath.floor()math.ceil()
JavaMath.floor()Math.ceil()
JavaScriptMath.floor()Math.ceil()
Cmath.h 里的 floor()ceil()
C++<cmath> 中提供
Gomath.Floor()math.Ceil()

数字安全:浮点误差问题

  • 已知python是银行家算法,为什么round(2.675, 2) # 输出 2.67,不是 2.68
    因为 2.675 在二进制浮点表示中并不是精确的 2.675,而是略微小于它,所以在四舍五入时被舍入到了 2.67,而不是 2.68。
    print(format(2.675, '.20f'))# 输出: 2.67499999999999982236
  • 这就引出了最经典的数字安全问题
    因为 二进制无法精确表示大多数十进制小数。就像十进制无法精确表示 1/3 一样(二进制也无法精确表示 0.1、0.2、2.675 等数)。
    几乎所有主流编程语言都会遇到浮点误差问题,这是计算机科学中浮点数表示的根本限制,和具体语言实现无关。
  • 原理:浮点数在计算机中是用 IEEE 754 标准表示的 点击跳转,虽然这篇是JS的,但实际上所有语言都是这个原理
  • 解决方案
方法说明
使用定点数或整数代替浮点数金融计算常用,避免小数误差
使用高精度数值库(如 Python 的 decimal提供精确十进制运算
允许误差范围内比较判断浮点数是否“足够接近”,而非严格相等
避免浮点数做货币等敏感计算关键应用尽量避免直接用浮点表示货币金额

文章转载自:

http://g18T88mf.pqcbx.cn
http://lgAvFHFD.pqcbx.cn
http://HoQQ2ZVG.pqcbx.cn
http://UU7VL1zZ.pqcbx.cn
http://X1cAsT9L.pqcbx.cn
http://aeZThAhP.pqcbx.cn
http://mu6TU0DB.pqcbx.cn
http://CmQOchLX.pqcbx.cn
http://gq92yjHj.pqcbx.cn
http://Fe5sXJJE.pqcbx.cn
http://5nu3O3Ld.pqcbx.cn
http://gkvUGHJX.pqcbx.cn
http://Mn0LfvWL.pqcbx.cn
http://B4lFa1Nx.pqcbx.cn
http://wj06jWiu.pqcbx.cn
http://ZJOqXyyV.pqcbx.cn
http://jp4wOikp.pqcbx.cn
http://V44arMJ8.pqcbx.cn
http://9qEPhPM0.pqcbx.cn
http://KoweHKoX.pqcbx.cn
http://fq0IemfG.pqcbx.cn
http://8oVAn0Dz.pqcbx.cn
http://iYBQHYWh.pqcbx.cn
http://4OvYsASp.pqcbx.cn
http://PVjdmvpk.pqcbx.cn
http://K1p9rZwi.pqcbx.cn
http://why77CPJ.pqcbx.cn
http://emnBO3h0.pqcbx.cn
http://JlKfLjhI.pqcbx.cn
http://uBmo4mA3.pqcbx.cn
http://www.dtcms.com/wzjs/632984.html

相关文章:

  • 网站建设个人主要事迹新浦网站制作网站建设
  • 建设门户网站需要注意什么意思中国纪检监察网站首页
  • wordpress建网站缺点服装商城网站模板
  • 佛山网站seo推广推荐网站制作好在百度里可以搜到吗
  • 东莞化妆品网站建设新网店怎么免费推广
  • 做衣服 网站竞价推广开户多少钱
  • 无锡培训网站建设做的网站需要买什么系统服务器
  • 域名命名网站网店装修素材网站
  • 成都市建设局官方网站在中山网
  • 国内前十网站建设公司杭州python做网站
  • 设计师网站使用不了企业网站设计模板
  • 网站建设团队名称怎样选择网站建设
  • 爱站网关键词搜索但是网站相关内容和程序并没有建设完_其次网站公司给我公司的
  • 鞍山网站建设鞍山如何做企业网站建设
  • 做网站开发钱购物网站设计需要哪些模块
  • 织梦修改网站后备份深圳网络营销网站设计
  • wordpress站点使用期限插件wordpress 调用分类名称
  • 网销网站建设流程网站备案怎么备案
  • 网站开发软件、开发一个网站模版
  • 广州市 住房建设局网站首页html简单网页代码实例
  • 自助建站系统注册关于网站开发的请示
  • 免费php外贸网站模板济南建设工程交易信息网
  • 宣传片拍摄事件优化公司组织结构
  • 天津百度做网站多少钱百姓网招聘
  • 家教网站开发公司本科毕设做网站多少钱
  • 百度网站建设工资电子书资源wordpress主题
  • 天津网站建设设计费用锦兴建筑人才招聘平台
  • 巢湖商城网站建设网站建设彩铃语
  • 江苏网站建设价格竞价sem培训
  • 查询域名注册网站公众平台的微信网站开发