Maison >Java >javaDidacticiel >Explication détaillée de la notation scientifique Java

Explication détaillée de la notation scientifique Java

高洛峰
高洛峰original
2017-03-19 11:26:114278parcourir

Notation scientifique Java

1 Concept de notation scientifique

1.1 Chiffres significatifs

En nombre approximatif, en commençant par le premier chiffre à gauche qui n'est pas 0 , jusqu'au nombre exact de chiffres, tous les nombres intermédiaires sont appelés chiffres significatifs de ce nombre approximatif
Par exemple :
890314000 conserve trois chiffres significatifs comme 8,90×10 élevé à la puissance 8 (arrondi)
839960000 Réserve trois chiffres significatifs comme 8,40×10 à la puissance 8 (cinq entrées)
0,00934593 Réserve trois chiffres significatifs comme 9,35×10 à la puissance -3

Notation 1,2 E

La plupart des calculatrices et programmes informatiques affichent des résultats très grands et très petits en notation scientifique. Étant donné que les exposants (tels que 1011) ne sont pas pratiques à afficher à l'écran, la lettre E ou e est généralement utilisée pour représenter une puissance dixième (écrite « ×10b »), et le nombre après E ou e est son exposant ; en d'autres termes, pour deux nombres réels a et b (b doit être entier), la valeur représentée par "aEb" est a × 10b. Notez que la lettre e dans cet usage n'est pas la constante mathématique e, ni l'exposant fonction exp() (l'afficher avec une lettre majuscule E peut éviter dans une plus grande mesure les malentendus) ; représente un exposant, ce signe est généralement appelé signe (notation scientifique) E ou e, plutôt que signe de base en exposants (bien que ce dernier se produise également). Essayez de ne pas utiliser cette méthode d'affichage dans les publications formelles.
Notez que e ou E en notation scientifique n'a rien à voir avec la constante mathématique e ou la fonction exp.
Cette méthode d'écriture est causée par l'inconvénient d'écrire des exposants dans certains programmes informatiques. Cette méthode d'écriture ne doit pas être utilisée dans les publications officielles.
La notation scientifique dans les normes nationales de mon pays est exprimée sous la forme de a ×10b au lieu de aEb (voir GB3101-1993, GBT15835-2011, GBT8170-2008).


2 Notation scientifique en Java

En Java, lorsque la valeur de Double remplit certaines conditions, elle sera affichée en notation scientifique (ce qui suit est un test personnel Le résultat, pas la conclusion obtenue du document) :

@Test
publicvoid testPrintScientificNotation(){
//整数部分位数大于等于8时开始以科学计数法显示
System.out.println(-12345678.0);
System.out.println(12345678.0);
//整数位为0,当小数位以0开始连续出现大于等于3时开始以科学计数法显示
System.out.println(0.0001);
System.out.println(-0.0001);
}

Résultat

  1. <span class="pun">-</span><span class="lit">1.2345678E7</span>

  2. <span class="lit">1.2345678E7</span>

  3. <span class="lit">1.0E-4</span>

  4. -<span class="lit">1.0E-4</span>

Souvent, nous devons faire A unifié, soit toutes les sorties sont en notation scientifique, soit toutes sont affichées sous forme de comptage ordinaire.
Selon les informations en ligne, trois méthodes d'implémentation API sont principalement mentionnées : NumberFormat, DecimalFormat et BigDecimal.

2.1 NumberFormat

NumberFormat est la classe de base abstraite pour tous les formats numériques.

publicstaticString scientificNotation2String(Double d,int newValue){
String value =null;
NumberFormat nf =NumberFormat.getInstance();
// 设置此格式中不使用分组
   nf.setGroupingUsed(false);
// 设置数的小数部分所允许的最大位数。
   nf.setMaximumFractionDigits(newValue);
   value = nf.format(d);
return value;
}

Si le nombre de décimales saisi est supérieur au nombre maximum de décimales fixé, il sera arrondi.

2.2 DecimalFormat

DecimalFormat est une sous-classe concrète de NumberFormat, utilisée pour formater les nombres décimaux. Cette classe est conçue avec diverses fonctionnalités qui lui permettent d'analyser et de formater des nombres dans n'importe quelle langue, y compris la prise en charge des nombres occidentaux, arabes et indiens. Il prend également en charge différents types de nombres, notamment les nombres entiers (123), les nombres à virgule fixe (123,4), les nombres en notation scientifique (1.23E4), les pourcentages (12 %) et les montants (123 $). Tout ce contenu peut être localisé.

publicstaticString scientificNotation2String(Double d){
String value =null;
DecimalFormat decimalFormat =newDecimalFormat("0.00");//格式化设置  
       value = decimalFormat.format(d);
return value;
}

Vous devez configurer un modèle et spécifier le nombre de décimales à conserver. Si le nombre de décimales dans la valeur entrante dépasse le nombre de décimales spécifié, il sera arrondi si ; le nombre de décimales dans la valeur entrante est inférieur au nombre de décimales spécifié, vous pouvez définir le remplissage à zéro.
Si vous devez convertir la valeur en notation scientifique, il vous suffit de modifier le modèle. Par exemple, modifiez le modèle en : 0.##E0

2.3 BigDecimal<.>

BigDecimal est un nombre décimal signé immuable et de précision arbitraire.

publicstaticString scientificNotation2String(String str){
String value =null;
BigDecimal bd =newBigDecimal(str);
       value = bd.toPlainString();
return value;
}
BigDecimal a de nombreuses

méthodes de constructeur , et il n'est pas nécessaire de transmettre une valeur de type String. La différence entre la méthode toString et la méthode toPlanString dans BigDecimal :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn