pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何避免 Java 中的浮點(diǎn)數(shù)或雙精度數(shù)的浮點(diǎn)精度

How to avoid floating point precision errors with floats or doubles in Java?(如何避免 Java 中的浮點(diǎn)數(shù)或雙精度數(shù)的浮點(diǎn)精度錯(cuò)誤?)
本文介紹了如何避免 Java 中的浮點(diǎn)數(shù)或雙精度數(shù)的浮點(diǎn)精度錯(cuò)誤?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我有一個(gè)非常煩人的問(wèn)題,即 Java 中的浮點(diǎn)數(shù)或雙精度數(shù)很長(zhǎng).基本上這個(gè)想法是,如果我執(zhí)行:

I have a very annoying problem with long sums of floats or doubles in Java. Basically the idea is that if I execute:

for ( float value = 0.0f; value < 1.0f; value += 0.1f )
    System.out.println( value );

我得到的是:

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001

我知道有浮動(dòng)精度誤差的累積,但是,如何擺脫這個(gè)?我嘗試使用 doubles 將錯(cuò)誤減半,但結(jié)果還是一樣.

I understand that there is an accumulation of the floating precision error, however, how to get rid of this? I tried using doubles to half the error, but the result is still the same.

有什么想法嗎?

推薦答案

沒(méi)有將 0.1 精確表示為 floatdouble.由于這種表示錯(cuò)誤,結(jié)果與您的預(yù)期略有不同.

There is a no exact representation of 0.1 as a float or double. Because of this representation error the results are slightly different from what you expected.

您可以使用的幾種方法:

A couple of approaches you can use:

  • 當(dāng)使用 double 類型時(shí),只顯示你需要的數(shù)字.在檢查相等性時(shí),無(wú)論哪種方式都允許有一個(gè)小的容差.
  • 或者使用允許您存儲(chǔ)要精確表示的數(shù)字的類型,例如 BigDecimal 可以精確表示 0.1.
  • When using the double type, only display as many digits as you need. When checking for equality allow for a small tolerance either way.
  • Alternatively use a type that allows you to store the numbers you are trying to represent exactly, for example BigDecimal can represent 0.1 exactly.

BigDecimal 的示例代碼:

BigDecimal step = new BigDecimal("0.1");
for (BigDecimal value = BigDecimal.ZERO;
     value.compareTo(BigDecimal.ONE) < 0;
     value = value.add(step)) {
    System.out.println(value);
}

在線查看:ideone

這篇關(guān)于如何避免 Java 中的浮點(diǎn)數(shù)或雙精度數(shù)的浮點(diǎn)精度錯(cuò)誤?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環(huán)繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動(dòng)生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數(shù)據(jù)庫(kù))
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對(duì)象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 电销卡_北京电销卡_包月电话卡-豪付网络| 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 学习安徽网| 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 |