je veux tronquer un nombre décimal par un après construit en fonctionjava (pas javascript). par exemple: 69,80000000001 à 69,8nombre tronquer après la virgule ... par fonction intégrée en java
s'il vous plaît guider.
je veux tronquer un nombre décimal par un après construit en fonctionjava (pas javascript). par exemple: 69,80000000001 à 69,8nombre tronquer après la virgule ... par fonction intégrée en java
s'il vous plaît guider.
Qu'en est-il de la classe Decimal Format?
Je ne l'ai pas testé, mais: D'accord, ce travail devrait:
import java.text.DecimalFormat;
import java.math.RoundingMode;
public class Test
{
public static void main(String args[])
{
double i = 69.8999999999;
DecimalFormat format = new DecimalFormat("#.#");
format.setRoundingMode(RoundingMode.FLOOR);
String s = format.format(i);
i = Double.parseDouble(s);
System.out.println(i); //should be 69.8
}
}
Vous pouvez utiliser la fonctionnalité d'échelle de BigDecimal:
new BigDecimal(69.80000000001).setScale(1, RoundingMode.HALF_UP).doubleValue();
Ceci est pour plus en utilisant la valeur arrondie. Si vous voulez simplement imprimer la valeur arrondie mais conserver l'original, DecimalFormat est le bon choix tel que décrit par Matt.
! Il donne des erreurs WHN je l'applique dans mon programme est-il un fichier d'en-tête requis avant de le faire ????? – sadia
Quelles sont les erreurs? Compilateur? Avez-vous importé java.math.BigDecimal et java.math.RoundingMode? Tout IDE devrait soutenir cela par "Organiser les importations" ou Quelque chose comme ça –
Non, je n'ai pas importé quelque chose de ce genre, de toute façon, essayez-le! – sadia
Tronqué ou rond? –
Truncate/Round ont la malheureuse propriété de ne pas pouvoir produire le nombre 69.8 en sortie. Ils vont probablement vous donner 69,7999999999999971578290569595992565155029296875, ce qui est proche. –
tronqué arrondi. parce que je veux 69.8001 en 69.8 pas en 70. – sadia