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

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

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

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

巴扎黑
巴扎黑

répondre à tous(2)
左手右手慢动作

La raison est que les nombres à virgule flottante sont composés de deux parties : l'exposant et la mantisse. Une fois que les nombres à virgule flottante sont convertis en binaires et participent aux calculs, le processus de conversion deviendra imprévisible et irréversible
Ce que vous avez mentionné Le deuxième cas. Il se trouve qu'aucune perte de précision n'est constatée pendant le processus de conversion

Peter_Zhu

Ce problème ne se limite pas à Java, mais d'autres langages peuvent également avoir ce problème.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal