我正在尝试将一些 VBA excel 代码转换为 JS,但即使我很确定,代码也无法正常工作。 以下是给我带来问题的片段:
VBA: Tri1 = Tri1 + 2 ^ (2 - Tour)
JS: tri1 = tri1 + Math.pow(2, (2 - tour));
和:
VBA: If (y And (2 ^ (5 - Tour))) <> (Tri2 And 2 ^ (5 - Tour)) Then
JS: if ((y && Math.pow(2, 5 - tour)) != (tri2 && Math.pow(2, 5 - tour)))
和:
VBA: If (Tri1 And 2 ^ (2 - Tour)) = 0 Then
JS: if ((tri1 && Math.pow(2, 2 - tour)) == 0)
tri1、tri2、y均为整数。
我对 JS 有很好的理解,但对 VBA 却一窍不通。所以我之前已经在谷歌上搜索了很多。
谢谢!
最佳答案
这不是一个完整的答案,但我认为这些信息可以帮助您实现目标。因为你只是想把单词从 vba 翻译成 js。但是 js 不是 vba 并且 js 有一些特殊的东西。
第一: float
js 中的 float 并不总是像它看起来的那样。这里的问题将为您提供有关该主题的更多信息: How to deal with floating point number precision in JavaScript?
由于代码片段,我不知道您的变量之一是否是 float 。但是如果,你应该知道那个问题。
第二:比较
JS 处理比较的方式与其他一些语言略有不同。关于该主题的一些有用链接:
- > http://www.w3schools.com/js/js_comparisons.asp
- > Which equals operator (== vs ===) should be used in JavaScript comparisons?
特别是你的代码中的比较不是很清楚。例如:
var a = 10;
var b = 0;
document.write((a && b) == 0); // is true
document.write(a && b) // is 0
var a = 10;
var b = 11;
document.write((a && b) == 0); // is false
document.write(a && b) // is 11
这真的是您想要的行为吗?因此,尽量简化您的比较,您的代码就可以工作。
关于javascript - 从 VBA 到 Javascript 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34312899/