2017-09-15 5 views
0

私はいくつかの小数点以下桁数を四捨五入するコードを作っていますが、アンダーフローが発生した場合にはより多くの場所を使用してゼロに丸めることは避けてください。JavaScriptの数字は、科学の表記法で表示されないとどれくらい小さくなりますか?

しかし私はときどき小さな数字が科学表記で表示されることに気付きました。私のターゲットユーザは、科学記法に慣れていないと予想され、アンダーフローを処理した後でさえもそのような数は小さすぎるため、ゼロとして扱うべきです。

数字が非常に小さいために科学的表記法で表示されることがわかりましたか?

私が比較することができる最小の数字はありますか?もしあれば、それは何ですか? 良い方法がありますか?

(私は文字列に数値を変換し、それが「e」を持っているが、私はあまりにも任意の数学のみのソリューションを知りたいですタイプだかどうかを確認することができます知っている。)

+1

数字の文字列形式を取得し、埋め込まれた "e"をチェックするだけではどうですか? – Pointy

+0

@ Pointy:ああ、私は好奇心のために数学的にそれをやる方法を知りたいです。私はその質問にそれを含めることを意味しました。私はそれを編集させてください... – hippietrail

+1

"e"をチェックするのはかなり簡単ですが、浮動小数点数学はかなり複雑です:) – Pointy

答えて

2

あります数が指数表記で表示されているいくつかの理由:

  • 数の有効数字の長さがゼロ以外の番号の前のゼロの数が6よりも大きい場合により大きい21
  • ある場合(例えば、 0.00000001)

数字による科学記法への変換は、Section 9.8.1 of ECMA-262で指定されています。

この仕様の実装はV8 engine hereにあります。

関連する問題