Maison >Java >javaDidacticiel >Explication détaillée de la notation scientifique Java
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
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).
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
<span class="pun">-</span><span class="lit">1.2345678E7</span>
<span class="lit">1.2345678E7</span>
<span class="lit">1.0E-4</span>
-<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.
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.
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
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 :
string de ce BigDecimal, si un exposant est requis, puis Utilisation de la notation scientifique
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!