gpt4 book ai didi

javascript - 将 float 与字符串进行比较时,此代码是否有效?

转载 作者:行者123 更新时间:2023-11-29 18:17:38 25 4
gpt4 key购买 nike

我正在阅读 Adob​​e (snap.svg.js) 库中的代码,我看到了这段代码,这让我很困惑:

function curveDim(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {
var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),
b = 2 * (c1x - p1x) - 2 * (c2x - c1x),
c = p1x - c1x,
t1 = (-b + Math.sqrt(b * b - 4 * a * c)) / 2 / a,
t2 = (-b - Math.sqrt(b * b - 4 * a * c)) / 2 / a;
Math.abs(t1) > "1e12" && (t1 = .5);
Math.abs(t2) > "1e12" && (t2 = .5);

由于公式非常复杂,我无法得出测试它的值,所以我想问一个普遍的问题:为什么可以将 Math.abs(t1) 与字符串“1e12”进行比较?那不就是把 float 转成字符串,再做词法比较吗?如果变量 a 为零怎么办?这是好代码吗?任何关于作者试图做什么的解释以及它是否正确都会很棒。

最佳答案

不,> 运算符将两个操作数都转换为数字( http://es5.github.io/#x11.8.2http://es5.github.io/#x11.8.5 )。

看看当我将字符串转换为数字时会发生什么:

> +"1e12"
1000000000000

1e12 is actually a valid number literal表示 1 * 1012。不知道他们为什么改用字符串,Math.abs(t1) > 1e12 也能正常工作。

关于javascript - 将 float 与字符串进行比较时,此代码是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com