2017-05-09 3 views
1

J'utilise le tube numérique (nombre: '1.2-2') pour arrondir les nombres décimaux. Cela fonctionne bien pour les nombres de format standard mais pour les nombres de format scientifiques (exponentiel) le résultat est retourné dans le format standard.Angulaire 2 - Tuyau numérique pour les numéros de notation scientifique

Par exemple, si je demande le tube numéro ci-dessus pour 1.336274995924138e + 306 Je pense 1.34e + 306, mais ce que je reçois est 1336274995924140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

Les mêmes œuvres bien dans angulaire JS 1.x.

S'il vous plaît aviser comment puis-je obtenir le résultat dans la même notation que le numéro d'origine.

Répondre

0

Pour num = 1.336274995924138e + 306

num.toPrecision(3) 

résultats en notation scientifique avec 3 chiffres significatifs ... i.e.. 1.34e + 306

Voici un exemple Plunker avec un tuyau personnalisé qui utilisera toPrecision lorsque le nombre est grand, sinon, il utilisera le DecimalPipe que vous avez utilisé. Custom Pipe Example

Si vous voulez intégrer cela dans votre base de code, vérifiez comment il est référencé dans le module principal de l'application.

+0

Merci. toPrecision fonctionne bien pour le format scientifique mais pas pour les formats standard. Dans mon cas, j'ai besoin de quelque chose qui peut fonctionner avec des formats standard et scientifiques. Donc si mon entrée est au format standard, le tube doit l'arrondir à 2 décimales et le résultat doit être au format standard. Et si l'entrée est en format scientifique, alors le résultat doit être en format scientifique. – Sam