关于Java浮点运算精确的问题
巴扎黑
巴扎黑 2017-04-17 17:38:20
0
2
342

早知道在java中,浮点运算会出现不精确的情况。解决方案是BigDecimal类。
今天发现个问题:

System.out.println(2-1.1);//0.8999999999999999
System.out.println(2.0-0.9);//1.1

只要没有整数位的都会出现问题?
Why?

巴扎黑
巴扎黑

membalas semua(2)
左手右手慢动作

Sebabnya ialah nombor titik terapung terdiri daripada dua bahagian: eksponen dan mantissa Selepas nombor titik terapung ditukar kepada perduaan dan mengambil bahagian dalam pengiraan, proses penukaran akan menjadi tidak dapat diramalkan dan tidak dapat dipulihkan
Apa yang anda nyatakan Kes kedua. kebetulan tiada kehilangan ketepatan ditemui semasa proses penukaran

Peter_Zhu

Masalah ini tidak terhad kepada Java, bahasa lain mungkin juga mengalami masalah ini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan