3

精度を失うことなく浮動小数点変数を文字列に変換したいと考えています。

つまり、出力をさらに処理するために使用するため (文字列が非常に長く読みやすいものになる場合でも)、浮動小数点変数に含まれる情報と同じ情報を文字列に含めたいと考えています。

これをより明確に言えば、巡回変換の機能が欲しい

var dA = 323423.23423423e4;
var sA = toString(dA);
var dnA = toDouble(sA);

dnA と dA を等しくしたい

ありがとう

PS: インターネット上の情報源は通常、文字列を丸める方法について語っていますが、正確な表現に関する情報は見つかりませんでした。また、任意精度の計算には興味がありません。倍精度の浮動小数点演算が必要なだけです。

4

2 に答える 2

5

文字列演算で文字列変換を行い、それを使用parseFloatして浮動小数点数に戻します。

var dA = 323423.23423423e4;
var sA = dA + '';
var dnA = parseFloat(sA);

これが実際の動作を確認するためのフィドルです。

注: JavaScriptの数値はすべてdoubleであるため、doubleとfloatを区別する必要はありません。したがって、精度の低下を心配する必要があるのは、最初の行だけです。たとえば、var dA = 987654321.0123456789最初の行に対して行った場合、それはと同等でvar dA = 987654321.01234567あり、最終的にはdA同じdnAになります。

于 2012-12-07T16:35:34.440 に答える
1

ちょうどdA.toString()それparseFloat(sA)を行う必要があります。

于 2012-12-07T16:32:49.830 に答える