Java DecimalFormat Notation Scientifique Question
Je suis à l'aide de Java DecimalFormat classe d'imprimer les nombres en Notation Scientifique. Cependant, il y a un problème que j'ai. J'ai besoin des chaînes de longueur fixe, indépendamment de la valeur et le signe de la puissance de dix se lancer. Actuellement, c'est ce que mon format ressemble:
DecimalFormat format = new DecimalFormat("0.0E0");
Cela me donne les combinaisons suivantes: 1.0E1, 1.0 E-1, -1.0E1, et de -1.0 E-1.
Je peux utiliser setPositivePrefix pour obtenir: +1.0E1, +1.0 E-1, -1.0E1, et de -1.0 E-1, ou ce que j'aime, mais cela n'affecte pas le signe de la puissance!
Est-il possible de faire ce que je peux avoir des chaînes de longueur fixe? Merci!
Edit: Ah, donc il n'y a aucun moyen de le faire à l'aide de Java existant DecimalFormat API? Merci pour les suggestions! Je pense que j'ai peut-être une classe de DecimalFormat parce que je suis limité par l'interface qui est déjà en place.
OriginalL'auteur Scott | 2009-07-31
Vous devez vous connecter pour publier un commentaire.
Voici un moyen. L'eau de rose, peut-être, mais il fonctionne...
Vous pouvez également sous-classe DecimalFormat, mais je la trouve généralement plus propre de ne pas sous-classe de classes concrètes.
OriginalL'auteur Carl Manaster
Cela a fonctionné formulaire de moi,
OriginalL'auteur Enrico Scantamburlo
Pourriez-vous utiliser
printf()
à la place:De sortie:
Si vous avez besoin pour la sortie d'un
String
au lieu de cela, vous pouvez utiliser les informations fournies à Formaté Impression pour Java (sprintf) de le faire.EDIT: Wow, que
PrintfFormat()
chose est énorme et semble être inutile:J'ai eu l'idée pour le code ci-dessus à partir de Obtenir un OutputStream dans une Chaîne.
OriginalL'auteur Grant Wagner
Comment l'utiliser?
Voir
formatTest
méthode.if (value.compareTo(positive) == 1 || value.compareTo(negative) == -1)
est utile pour un très grand nombreOriginalL'auteur sambuca
Pourquoi ne pas utiliser "0.0 E+0" à la place? Remarque le signe de l'avant-dernier zéro.
java.lang.IllegalArgumentException
contenant le texte: la malformation de tendance exponentielle "0.0 E+0"OriginalL'auteur kstep