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_latvalue_location.json_lat平等的好方法。

如您所见,json_lat提供-118.3844000csv_lat- -118.3844

两者具有与 相同的值,double但与不同String

应该是什么,高性能,如何做到这一点?

谢谢,

4

4 回答 4

3

您的问题不清楚,请学习如何提出一个好的问题(您说您“想让它们相等”但您想要检查字符串中包含的数字是否相等,这根本不是一回事) .

你想把这些字符串变成浮点数吗?然后使用parseFloat(),然后您可以将它们作为浮点数进行比较(注意规则

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:比较两个浮点值

于 2013-06-16T12:42:02.363 回答
1

不完全确定你在这里的意思。如果你想要这个:

我需要找到使 value_location.csv_lat 和 value_location.json_lat 相等的好方法。

然后value_location.csv_lat = value_location.json_lat将工作一个享受。

于 2013-06-16T12:44:28.157 回答
0

对于初学者来说,JavaScript 只有number数据类型。但是,如果您希望这两个数字相等,请string使用该toFixed()方法获取您想要的小数位数。像这样:

var example_number = 5.333000;
var rounded_number = example_number.toFixed(2);
alert(rounded_number);
于 2013-06-16T12:43:28.457 回答