Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中比较位置的正确方法_Javascript - Fatal编程技术网

在javascript中比较位置的正确方法

在javascript中比较位置的正确方法,javascript,Javascript,我遵循了从csv和json中表示位置的单个对象: "value_location1": { "json_lat": "-118.3844000", "csv_lat": "-118.3844" }, "value_location2": { "json_lat": "-117.933122", "csv_lat": "-117.933122" }, 实际上,我有这些对象的145k(importent)数组,我需要找到好方法使value\u location.csv\

我遵循了从csv和json中表示位置的单个对象:

 "value_location1": {
  "json_lat": "-118.3844000",
  "csv_lat": "-118.3844"
   },
  "value_location2": {
  "json_lat": "-117.933122",
  "csv_lat": "-117.933122"
},
实际上,我有这些对象的145k(importent)数组,我需要找到好方法使
value\u location.csv\u lat
value\u location.json\u lat
相等

如您所见,
json\u lat
csv\u lat
-
-118.3844
时提供
-118.3844000

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

应该是什么,高性能,这样做的方式


谢谢,

只需将值复制到浮点值并比较浮点值

或者您可能会陷入这个问题,对于初学者来说,JavaScript只有
number
数据类型。但是,如果希望这两个数字等于相同的
字符串
,请使用
toFixed()
方法获取所需的小数点数量。像这样:

var example_number = 5.333000;
var rounded_number = example_number.toFixed(2);
alert(rounded_number);

我不完全明白你在这里的意思。如果你想要这个:

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


然后
value\u location.csv\u lat=value\u location.json\u lat
就可以了。

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

您正在尝试将这些字符串转换为浮点数吗?然后使用,然后可以将它们作为浮点数进行比较()

无论冒号后面有多少位数字,您是否试图删除字符串末尾的额外0?如果是这样,只需在parseFloat()之后将它们转换回字符串


parseFloat(string).toFixed(4)
根据您的javascript对象,两者的值与double相同,但与string不同
->。这两个属性定义为字符串。因此,您必须将这些字符串解析为实际的浮点数(
parseFloat
),然后对结果进行四舍五入(
.toFixed
)注意,使用
toFixed()
,您也将得到一个字符串,而不是一个浮点数。@adeneo,我添加了另一个对象,我知道这是个好办法,但我不想把点后的数字减少到4位。有时我可以得到点后的lat或long 5-8位数,我在所有145k对象上循环运行。Thanks@Lepidosteus-总是有
(string*1000)/1000
来解决这个问题。parseFloat通常会删除零。json对象返回
csv_lat
json_lat
作为字符串和
-118.3844000!=-118.3844
@MaximShoustin但你到底想要什么?如果要使它们相同,只需将一个值复制到另一个值即可。
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
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"