2

私は csv と json からの場所を表す単一のオブジェクトに従いました:

 "value_location1": {
  "json_lat": "-118.3844000",
  "csv_lat": "-118.3844"
   },
  "value_location2": {
  "json_lat": "-117.933122",
  "csv_lat": "-117.933122"
},

実際には、これらのオブジェクトの145k (重要)value_location.csv_latの配列があり、作成しvalue_location.json_latて等しくするための良い方法を見つける必要があります。

ご覧のように when -がjson_lat提供されます。-118.3844000csv_lat-118.3844

どちらも と同じ値ですが、 とは異なりdoubleますString

どうあるべきか、高性能、それを行う方法は?

ありがとう、

4

4 に答える 4

3

あなたの質問は不明確です。良い質問をする方法を学んでください(あなたは「それらを等しくしたい」と言っていますが、文字列に含まれる数値が等しいかどうかを確認したいのですが、これはまったく同じではありません) .

これらの文字列を浮動小数点数に変換しようとしていますか? 次にparseFloat()を使用すると、それらを float として比較できます (ルールに注意してください) 。

value_location.csv_lat = parseFloat(value_location.csv_lat, 10);
// value_location.json_lat is the number -118.3844
value_location.json_lat = parseFloat(value_location.json_lat, 10);
// value_location.csv_lat is the number -118.3844

コロンの後の桁数に関係なく、文字列の末尾にある余分な 0 を削除しようとしていますか? その場合は、 parseFloat() の後にそれらを文字列に戻すだけです

value_location.csv_lat = parseFloat(value_location.csv_lat, 10) + '';
// value_location.json_lat is the string "-118.3844"
value_location.json_lat = parseFloat(value_location.json_lat, 10) + '';
// value_location.csv_lat is the string "-118.3844"
于 2013-06-16T12:57:59.497 に答える
1

値をフロートに渡し、フロート値を比較するだけです
または、この問題に陥る可能性がありますJavascript: Comparing two float values

于 2013-06-16T12:42:02.363 に答える