【问题标题】:How can I split a string into two float numbers in Javascript?如何在Javascript中将一个字符串拆分为两个浮点数?
【发布时间】:2020-12-05 16:59:26
【问题描述】:
function xyDistance(from,to){
var s=from.split(",");
var x1=parseFloat(s[0]);
var y1=parseFloat(s[1]);
var dt = Math.sqrt( (x2-x1)**2+(y2-y1)**2);
return dt;
}
我将输入两个坐标作为字符串。我已经把它们分开了,但是我不知道如何分开两点的X和Y坐标。照片显示了输入值和预期输出值。
【问题讨论】:
标签:
javascript
computer-science
【解决方案1】:
对于每个from、to,您只需将其拆分并解析
function xyDistance(from, to) {
var [x1, y1] = from.split(",").map(axis => parseInt(axis, 10));
var [x2, y2] = to.split(",").map(axis => parseInt(axis, 10));
var dt = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
return dt;
}
console.log(xyDistance('1,1', '0,0'))
【解决方案2】:
我不确定您的算法应该做什么,但要获得两者的 x,y 坐标,只需对每个参数进行拆分。而且,仅供参考,JavaScript 中的所有数字都是浮点数(除非将它们格式化为整数,否则它们不会以小数形式显示)。
function xyDistance(from,to){
var f = from.split(",");
var x1 = parseFloat(f[0]);
var y1 = parseFloat(f[1]);
var t = to.split(",");
var x2 = parseFloat(t[0]);
var y2 = parseFloat(t[1]);
console.log("from x,y are: " + x1 + ", " + y1);
console.log("to x,y are: " + x2 + ", " + y2);
}
xyDistance("1,1","0,0");
xyDistance("1,1","-1,-1");
【解决方案3】:
function xyDistance(from,to){
const [x1, y1] = from.split(",");
const [x2, y2] = to.split(",");
const dt = Math.sqrt((x2-x1)**2+(y2-y1)**2);
return dt;
}
console.log(xyDistance("2,1", "0,1"))
试试上面的代码,不需要解析float
【解决方案4】:
您可以拆分值并将相同索引的增量作为Math.hypot 的值。
function xyDistance(from, to) {
const
f = from.split(',');
t = to.split(',');
return Math.hypot(f[0] - t[0], f[1] - t[1]);
}
console.log(xyDistance("1,1", "0,0"));
console.log(xyDistance("1,1", "-1,-1"));
【解决方案5】:
此代码将起作用
function xyDistance(from,to){
var f=from.split(",");
var fx=parseFloat(f[0]);
var fy=parseFloat(f[1]);
var t=to.split(",");
var tx=parseFloat(t[0]);
var ty=parseFloat(t[1]);
var dt = Math.sqrt( (fx-tx)**2+(fy-ty)**2);
return dt;
}