Regardez le résultat d'exécution du morceau de code suivant :
public class TestDouble { public static void main(String[] args) { double d =538.8; System.out.println(d*100); }
Le résultat de sortie n'est étonnamment pas 53880 mais 53879.99999999999
Méthode de solution 1 : Remplacez
538,8*100 par *10*10 pour obtenir le résultat souhaité. Remplacez
538,8*10000 par 100*100.
Solution 2 :
public class TestDouble { public static void main(String[] args) { double d =538.8; BigDecimal a1 = new BigDecimal(Double.toString(d)); BigDecimal b1 = new BigDecimal(Double.toString(100)); BigDecimal result = a1.multiply(b1);// 相乘结果 System.out.println(result); BigDecimal one = new BigDecimal("1"); double a = result.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留1位数 System.out.println(a); } }
L'article ci-dessus aborde brièvement le petit problème de déviation dans le résultat de la double multiplication Java, qui est tout le contenu partagé par le éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous soutiendrez le site Web PHP chinois.
Pour plus d'articles sur la petite déviation des résultats de double multiplication Java, veuillez faire attention au site Web PHP chinois !