3 votes

obtenir le reste en utilisant Java

Je peux obtenir le reste en divisant un nombre, mais si je devais diviser 306 par 100. Par exemple. 306 / 100 = 3

mais si j'arrive à trouver le reste par l'opérateur %, je veux récupérer 06, par exemple

souhaité

306 % 100 = 06

ce qui se passe réellement

306 % 100 = 6

Y a-t-il un moyen de contourner ce problème pour que deux chiffres soient renvoyés au lieu d'un seul ?

13voto

Jon Skeet Points 692016

Vous obtenez un numéro dos. 6 et 06 ont la même valeur. Un int (et les types similaires) n'ont pas de concept de chiffres de tête.

Si vous voulez format le nombre d'une manière particulière, lorsque vous le convertissez en chaîne de caractères (qui est le seul endroit où cela importe), il s'agit simplement de choisir le bon code de formatage. Est-ce que vous toujours Vous voulez deux chiffres ? Utilisez un format de "00" avec DecimalFormat .

import java.text.*;

class Test {

    public static void main(String args[]) throws Exception {
        NumberFormat format = new DecimalFormat("00");
        int value = 6;
        System.out.println(format.format(value)); // 06
    }
}

(Ou utilisez String.format ou une autre forme de mise en forme. Le point important est que le chiffre 6 n'est qu'un chiffre ; séparez le chiffre de sa représentation textuelle dans votre esprit).

2voto

ajuch Points 417

Il s'agit simplement de formater le numéro. Voir ici .

1voto

Cory Kendall Points 3403

Divisez-la en deux parties : obtenez d'abord la réponse mathématiquement correcte. 6 et le présenter comme vous le souhaitez. Si vous voulez toujours deux chiffres, vous pouvez utiliser :

int x = 306 % 100;
System.out.format("%02d", x);

1voto

Rohit Jain Points 90368

En fait, dans tout langage informatique, un nombre entier à un chiffre n'a pas besoin d'un zéro initial. Vous n'obtiendrez jamais cela en sortie dans aucun langage

Toutefois, si vous souhaitez qu'il soit imprimé comme cela, vous pouvez formater votre valeur en conséquence : -

System.out.format("%02d", 6);
  • Le premier 0 indique que vous voulez compléter votre numéro avec ZEROs et la deuxième valeur (2) indique le nombre de 0 que vous voulez

0voto

Kumar Vivek Mitra Points 19369

Je ce 6 et 06 est juste la même valeur, mais encore si vous voulez obtenir la valeur comme 6, alors essayez ceci

NumberFormat df = new DecimalFormat("00");
System.out.println(df.format(6));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X