1. Code:
import java.math.bigdecimal; import java.text.decimalformat; import java.text.numberformat; format de classe publique {double f = 111231.5585; public void m1 () {bigdecimal bg = new Bigdecimal (f); double f1 = bg.setscale (2, bigdecimal.round_half_up) .DoubleValue (); System.out.println (F1); } / ** * La conversion la plus pratique de Decimalformat * / public void m2 () {decimalformat df = new Decimalformat ("#. 00"); System.out.println (df.format (f)); } / ** * L'impression la plus simple de String.format * / public void m3 () {System.out.println (String.Format ("%. 2f", f)); } public void M4 () {NumberFormat nf = NumberFormat.getNumberInstance (); nf.setMaxiMumFractionDigits (2); System.out.println (nf.format (f)); } public static void main (string [] args) {format f = new format (); F.M1 (); F.M2 (); F.M3 (); F.M4 (); }}2. Résultat de sortie:
111231.56
111231.56
111231.56
111 231,56
Ici, nous fournissons une classe d'outils qui définit les méthodes de fonctionnement telles que l'addition, la soustraction, la multiplication, la division et l'arrondi des nombres à virgule flottante. Pour référence.
Fichier source Mathextend.java:
import java.math.bigdecimal; classe publique Mathextend {// la division par défaut Précision de l'opération privée statique final intrafault_div_scale = 10; / ** * Fournit une opération d'ajout précise. * @param v1 * @param v2 * @return la somme de deux paramètres * / public static double add (double v1, double v2) {bigdecimal b1 = new BigDecimal (double.tostring (v1)); BigDecimal B2 = nouveau BigDecimal (double.tostring (v2)); retour b1.add (b2) .doubleValue (); } / ** * Fournir des opérations d'addition précises * @param v1 * @param v2 * @return la somme mathématique de deux paramètres, retournant au format de chaîne * / chaîne statique publique add (chaîne v1, chaîne v2) {bigdecimal b1 = new BigDecimal (v1); BigDecimal B2 = nouveau BigDecimal (V2); retour b1.add (b2) .toString (); } / ** * fournit des opérations de soustraction précises. * @param v1 * @param v2 * @return la différence entre deux paramètres * / public statique Double (double v1, double v2) {bigdecimal b1 = new BigDecimal (double.tostring (v1)); BigDecimal B2 = nouveau BigDecimal (double.tostring (v2)); Retour B1.Substract (B2) .DoubleValue (); } / ** * Fournir une opération de soustraction précise * @param v1 * @param v2 * @return la différence mathématique entre deux paramètres, retourne au format de chaîne * / public static static soustraire (chaîne v1, chaîne v2) {bigdecimal b1 = new BigDecimal (v1); BigDecimal B2 = nouveau BigDecimal (V2); Retour B1.Substract (B2) .ToString (); } / ** * fournit des opérations de multiplication précises. * @param v1 * @param v2 * @return Produit de deux paramètres * / public statique double multiplier (double v1, double v2) {bigdecimal b1 = new BigDecimal (double.tostring (v1)); BigDecimal B2 = nouveau BigDecimal (double.tostring (v2)); retour b1.multiply (b2) .doubleValue (); } / ** * Fournir une opération de multiplication précise * @param v1 * @param v2 * @return Le produit mathématique de deux paramètres, retourne au format de chaîne * / chaîne statique publique (chaîne v1, chaîne v2) {bigdecimal b1 = new BigDecimal (V1); BigDecimal B2 = nouveau BigDecimal (V2); retour b1.multiply (b2) .toString (); } / ** * Fournit une opération de division précise (relativement) précise. Lorsqu'il n'y a pas de situation de division, il est exact de * 10 chiffres après le point décimal, et les numéros suivants sont arrondis, et le mode d'arrondi utilise Round_half_Even * @param v1 * @param v2 * @return le quotient des deux paramètres * / public static Double Divide (Double V1, Double V2) {Retour Divide (V1, V1, V2, Défaut_DIV_SCALE); } / ** * Fournit une opération de division précise (relativement) précise. Lorsqu'il n'y a pas de fin pour terminer la situation, le paramètre de l'échelle fait référence à la précision de *, et les nombres suivants sont arrondis. Le mode d'arrondi utilise Round_half_Even * @param v1 * @param v2 * @param échelle pour indiquer qu'il doit être précis à plusieurs décimales. * @return quotient de deux paramètres * / public static double division (double v1, double v2, échelle int) {return divide (v1, v2, échelle, bigdecimal.round_half_even); } / ** * Fournit une opération de division précise (relativement) précise. Lorsqu'il n'y a pas de fin pour terminer la situation, le paramètre de l'échelle fait référence à la précision de *, et les nombres suivants sont arrondis. Le mode d'arrondi utilise le mode d'arrondi spécifié par l'utilisateur * @param v1 * @param v2 * @param échelle signifie que vous devez être précis pour plusieurs chiffres après le point décimal * @param rond_mode signifie le mode d'arrondi spécifié par l'utilisateur * @return quotient de deux paramètres * / public static diplide (double v1, double v2, échelle int, intr rond_mode) {if (échelle <0) {lance IllégalArgumentException ("L'échelle doit être un entier ou un zéro positif"); } Bigdecimal b1 = new BigDecimal (double.tostring (v1)); BigDecimal B2 = nouveau BigDecimal (double.tostring (v2)); return b1.divide (b2, échelle, rond_mode) .DoubleValue (); } / ** * Fournit une opération de division précise (relativement) précise, lorsqu'il y a une division sans fin, il est exact à * 10 chiffres après le point décimal, et les numéros suivants sont arrondis, et le mode d'arrondissement utilise le quotient Round_Half_Even * @param v1 * @param v2 * @return le quotient de la division de la chaîne STATIQUE (STRAND V2) diviser (v1, v2, default_div_scale); } / ** * fournit des opérations de division précises (relativement) précises. Lorsqu'il n'y a pas de fin pour terminer la situation, le paramètre de l'échelle fait référence à la précision de *, et les nombres suivants sont arrondis. Le mode d'arrondi utilise rond_half_even * @param v1 * @param v2 * @param échelle représente le quotient des deux paramètres qui doivent être exacts au point décimal * @return le quotient des deux paramètres, renvoyant * / public static diplide (String v1, string v2, intche) {return divide (v1, v1, v2, defaulf_scale, Bigdecimal.round_half_even); } / ** * Fournit une opération de division précise (relativement) précise. Lorsqu'il n'y a pas de fin pour terminer la situation, le paramètre de l'échelle fait référence à la précision de *, et les nombres suivants sont arrondis. Le mode d'arrondi utilise le mode d'arrondi spécifié par l'utilisateur * @param v1 * @param v2 * @param échelle signifie que le nombre de chiffres après le point décimal doit être précis au point décimal * @param rond_mode signifie le mode d'arrondi spécifié par l'utilisateur * @return le quotient des deux paramètres, retourné dans le format string * / public static divide (string v1, string v2, int. if (échelle <0) {lancer un nouveau IllégalArgumentException ("l'échelle doit être un entier ou un zéro positif"); } Bigdecimal b1 = new BigDecimal (v1); BigDecimal B2 = nouveau BigDecimal (V2); return b1.divide (b2, échelle, rond_mode) .toString (); } / ** * Fournit un arrondissement précis des décimales, et le mode d'arrondi utilise des nombres Round_half_Even * @param V qui doivent être arrondis * @param échelle plusieurs chiffres conservés après la décimale * @return Résultats après arrondi * / public static rond (double v, échelle) {Retour Round (V, échelle, bigdecimal.round_half_even); } / ** * Fournit un arrondissement précis des décimales * @param v Nombres qui doivent être arrondis * @param échelle combien de chiffres sont conservés après le point décimal * @param rond_mode Mode d'arrondi spécifié * @return Résultats après l'arrondissement * / Public Static Round (Double V, Int Scale, Int Round_Mode) {If (Scale <0) {Throw New IllégalargustException ("The APPOSIGER APOSER APOSIER {MUST ET APPOSITIV ou zéro "); } Bigdecimal b = new BigDecimal (double.tostring (v)); retour b.setscale (échelle, rond_mode) .DoubleValue (); } / ** * Fournit un arrondissement précis des décimales, le mode d'arrondi utilise Round_half_Even * @param V Nombres qui doivent être arrondis * @param échelle combien de chiffres sont conservés après la plainte décimale * @return le résultat après l'arrondissement, le format de chaîne * / public static static tour (String V, intche) {retour (V, échelle, échelle, bigdecal. } / ** * Fournit un arrondissement précis des décimales * @param v Nombres qui doivent être arrondis * @param échelle combien de chiffres sont conservés après la décimale * @param rond_mode spécifié d'arrondi * @return le résultat après l'arrondissement. doit être un entier positif ou zéro "); } Bigdecimal b = new BigDecimal (v); retour b.setscale (échelle, rond_mode) .toString (); }}