Partage
  • Partager sur Facebook
  • Partager sur Twitter

Limiter l'affichage a 2 décimales

Android Studio 3.4

Sujet résolu
    14 septembre 2019 à 23:23:59

    Bonjour, ou plutôt bonsoir :)

    Je pense que le titre est clair, je cherche a limiter dans ma TextView (tv1), l'affichage a 2 décimales

    je joins mon code 

    Merci d'avance a tous 

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button btn_settings = findViewById(R.id.btn_settings);
            Button btn_netvendeur = findViewById(R.id.btn_netvendeur);
            Button btn_prixagence = findViewById(R.id.btn_prixagence);
    
          
    
    
            btn_netvendeur.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    EditText prix = findViewById(R.id.prix);
                    TextView tv1 = findViewById(R.id.tv1);
    
                    String val1 = prix.getText().toString();
                    int val11 = Integer.parseInt(val1);
    
    
                    if (val11 != 1)
                    tv1.setText("Le prix avec commission est de " + val11*1.0605 +" €");
                }
            });

    SOLUTION : 

    Je ne sais pas si c'est la meilleur mais elle fonctionne :D 

    Partant sur le principe qu'une variable de type int ne stock que des entiers, j'ai créé une nouvelle variable qui, elle, prend la val11 et la multiplie, ou la divise par 1.0605

    Ce qui donne : 

     String val1 = prix.getText().toString();
                    int val11 = Integer.parseInt(val1);
    
    int val111 = (int)  (val11*1.0605)
    
    
                    if (val11 != 1)
                    tv1.setText("Le prix avec commission est de " + val111 +" €");



    -
    Edité par JonathanVfv 15 septembre 2019 à 0:42:43

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2019 à 14:05:26

      Salut,

      Je comprend pas comment ça résout le problème. En multipliant pas 1.0605 qu’est ce qui t’assures que tu n’auras que deux chiffres après la virgule ?

      Tv.setText(String.format(“%.2f”, value))

      • Partager sur Facebook
      • Partager sur Twitter
        21 septembre 2019 à 18:14:10

        Parce qu'une variable de type int n'affichera jamais de décimales, pour ça il aurait fallu prendre une variabe de type float, par exemple.

        Dans mon 1er post, je prenais une variable int que je multipliais par 1.0605, dans mon second post, ma varibale int x 1.0605 me donnait une autre variable de type int, la décimal est donc impossible

        Ta proposition est juste également, toi tu interviens sur TEXTVIEW, moi sur INT

        • Partager sur Facebook
        • Partager sur Twitter
          22 septembre 2019 à 0:44:10

          Ah ok. Je savais pas que le résultat donnait un Int. Mais du coup tu cherchais à te limiter à 2 décimales. Or tu en as 0. Après si ce niveau de précision te convient, tant mieux ! Mais j’ai l’impression que ça revient à multiplier par 1

          • Partager sur Facebook
          • Partager sur Twitter
            23 septembre 2019 à 9:56:56

            oups...

            désolé mais j'ai oublié de préciser qu'entre temps j'ai modifié quelques points, dont la suppression des décimales.

            Alors rectification, ta méthode est correct pour limiter a 2 décimales, la mienne seulement si l'on souhaite la supprimer

            Du coup, merci pour ta réponse, même je n'en ai plus besoin aujourd'hui, elle servira sûrement a d'autres 

            • Partager sur Facebook
            • Partager sur Twitter

            Limiter l'affichage a 2 décimales

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown