[語法] 新手提問 陣列跟浮點數

看板java作者 (阿浩)時間7年前 (2016/10/09 16:23), 編輯推噓2(209)
留言11則, 6人參與, 最新討論串1/1
1. 我知道浮點數是一個不精確的數值,所以我試做了兩個方法 Double a = 0.3+0.3+0.3; System.out.print(a==0.9);//false =============================== Double b =0.3+0.3+0.1; System.out.print(a==0.7);//ture 是一定要三個都是不精確得到的值才是都不精確嗎?? 2. int[][] a = new int[1][3]; 請問這樣算是一維陣列還是二維陣列 謝謝各位解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.8.85 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1476001408.A.BA2.html

10/09 18:07, , 1F
IEEE754,浮點數計算在極小數範圍內視為相等處理。
10/09 18:07, 1F

10/09 18:08, , 2F
陣列我認為是,還有長度0的。
10/09 18:08, 2F

10/09 18:09, , 3F
補字「二維」,如果不論實際配置。
10/09 18:09, 3F

10/09 18:23, , 4F
2是二維陣列 他會產生一個儲存陣列的陣列 以及三個儲存物
10/09 18:23, 4F

10/09 18:23, , 5F
件的陣列
10/09 18:23, 5F

10/09 18:24, , 6F
但要注意 在Java中陣列也是一種物件
10/09 18:24, 6F

10/09 21:40, , 7F
1. 浮點數的== 通常會實作成 (a - 0.9) < eps
10/09 21:40, 7F

10/09 21:41, , 8F
所以不能隨意期待浮點數的相等
10/09 21:41, 8F

10/09 22:11, , 9F
謝謝各位回答~~
10/09 22:11, 9F

10/10 02:05, , 10F
研究一下 IEEE754 ,就了解浮點數到底是甚麼
10/10 02:05, 10F

10/18 02:41, , 11F
題外話 double b然後裡面是a==0.7
10/18 02:41, 11F
文章代碼(AID): #1N-Vw0kY (java)