日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA的知识点3——浮点数的相关处理

發布時間:2025/4/16 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA的知识点3——浮点数的相关处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

浮點類型float,double的數據不適合在不容許舍入誤差的金融計算領域。如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類

因為由于字長有限,浮點數能夠精確表示的數是有限的,因而也是離散的。

浮點數一般都存在舍入誤差,很多數字無法精確表示(例如0.1),其結果只能是接近, 但不等于。

二進制浮點數不能精確的表示0.1、0.01、0.001這樣10的負次冪。

并不是所有的小數都能可以精確的用二進制浮點數表示。

注:不要使用浮點數進行比較!需要比較請使用BigDecimal類


?java.math包下面的兩個有用的類:BigInteger和BigDecimal,這兩個類可以處理任意長度的數值。BigInteger實現了任意精度的整數運算BigDecimal實現了任意精度的浮點運算

import java.math.BigDecimal;public class test1 {public static void main(String[] args) {/*浮點數的比較一float f=0.1f;double d=1.0/10;System.out.println(f==d);*//*浮點數的比較二float d1=4254155545f;float d2=d1+1;if(d1==d2) {System.out.println("d1=d2");}else {System.out.println("d1 != d2");}*/BigDecimal bd=BigDecimal.valueOf(1.0);bd=bd.subtract(BigDecimal.valueOf(0.1));bd=bd.subtract(BigDecimal.valueOf(0.1));bd=bd.subtract(BigDecimal.valueOf(0.1));bd=bd.subtract(BigDecimal.valueOf(0.1));bd=bd.subtract(BigDecimal.valueOf(0.1));System.out.println(bd);System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);} }

?

程序運行結果如下圖:


浮點數使用總結

  • 默認是double類型

  • 浮點數存在舍入誤差,數字不能精確表示。如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類。

  • 避免比較中使用浮點數,需要比較請使用BigDecimal類

總結

以上是生活随笔為你收集整理的JAVA的知识点3——浮点数的相关处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。