ご存知のように、これは SO に関する最もよく聞かれるトピックの 1 つであるため、丸め誤差に問題があります (実際には誤差ではありません。私はよく知っています)。私の要点を説明する代わりに、私が持っている可能性のある数と、取得できるようにしたい入力の例を示します。
まあ言ってみれば
var a = 15 * 1e-9;
alert(a)
出力
1.5000000000000002e-8
代わりに取得できるようにしたいのですが1.5e-8
、e-8かe-45かそれ以外か分からないので、10e8で掛けたり、丸めたり、10e8で割ったりすることはできません。
基本的には、その部分を取得し、指数部分1.5000002
を適用して戻すことができるようにしたいと考えています。toFixed(3)
文字列に変換して解析することはできましたが、正しくないようです...
何か案が ?
(これが多くの重複の1つであると思われる場合は、事前にお詫び申し上げますが、同様の質問は見つかりませんでした。関連するもののみです)
ガエル