vb.net整数除法

时间:2013-01-07 09:42:10

标签: javascript asp.net vb.net

我正在尝试将此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相同)?

非常感谢帮助!

1 个答案:

答案 0 :(得分: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)])