1

我正在尝试将此 ASP.net(vb) 脚本转换为纯 Javascript,但我遇到了这个问题。我正在转换的脚本具有以下内容:

Dim F as Integer
Dim Theta(100) as Double

F 以值结束:1 Theta 以以下值结束:

[0, 1.2669233316773538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

然后完成一些数学计算,在公式中使用 Theta 数组,如下所示:

Cos(Theta(F / 2))

在这里做简单的数学运算,F / 2, (or 1 / 2) = 0.5没有数组键 0.5 所以在我的 Javascript 代码中就像这样说:

Math.cos(Theta[0.5])

最终会做:

Math.cos(undefined)

这当然打破了数学。

我的问题很简单。我没有 IIS 服务器或任何方式来修改 vb.net 脚本,以便我可以添加调试输出以查看其工作方式。我基本上是在盲目地做这件事,对任何.net 语言或 ASP 知之甚少。

由于 F 是一个整数,在 vb.net 脚本中除以 F 会产生一个整数吗?是否由于 F 的类型而强制舍入?

就像,在这个脚本中,发生了哪一个?:Theta[0](连接)或 Theta[1](四舍五入)或 Theta[0.5](与 javascript 相同)?

非常感谢您的帮助!

4

1 回答 1

2

看看这个答案:VB.NET vs C# integer division

VB.NET 有两个除法运算符:

  • “/”除法:四舍五入
  • "\" 整数除法:结果会被截断

在您的情况下,当您的脚本使用“/”时,结果将为 1(1 / 2 = 0.5 四舍五入为 1)。

你的 JavaScript

Math.cos(Theta[0.5])

应该成为

Math.cos(Theta[Math.round(0.5)])
于 2013-01-07T10:08:19.123 回答