web-dev-qa-db-fra.com

Comment puis-je diviser correctement en utilisant BigDecimal

Mon exemple de code:

import Java.math.*; 

public class x
{
  public static void main(String[] args)
  {
    BigDecimal a = new BigDecimal("1");
    BigDecimal b = new BigDecimal("3");
    BigDecimal c = a.divide(b, BigDecimal.ROUND_HALF_UP);
    System.out.println(a+"/"+b+" = "+c);
  }
}

Le résultat est: 1/3 = 0

Qu'est-ce que je fais mal?

42
Jan Ajan

Vous n'avez pas spécifié d'échelle pour le résultat. Veuillez essayer ceci

import Java.math.*; 

    public class x
    {
      public static void main(String[] args)
      {
        BigDecimal a = new BigDecimal("1");
        BigDecimal b = new BigDecimal("3");
        BigDecimal c = a.divide(b,2, BigDecimal.ROUND_HALF_UP);
        System.out.println(a+"/"+b+" = "+c);
      }
    }

cela donnera le résultat 0,33. Veuillez lire le API

73
Rohan Grover