2013-01-07 51 views
1

我想將這個ASP.net(VB)腳本轉換爲純Javascript,我遇到了這個問題。我將這個腳本有以下幾點:vb.net整數部門

[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] 

然後一些數學計算完成,裏面的:1 2θ的以下值結束:

Dim F as Integer 
Dim Theta(100) as Double 

f控制值結束公式西塔陣列使用像這樣:

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相同)?

非常感謝幫助!

+0

[這](http://en.wikibooks.org/wiki/Visual_Basic_.NET/Arithmetic_operators#Division)應該回答你的問題: '/'是浮動除法,'\'是整數除法。 (不能使反斜槓漂亮>。)因此,'1/2'是'0.5'。 – Amadan

+0

你的引用不會顯示如果你做了什麼會發生什麼:Dim x as Integer,然後做了浮點除法:x = 3/4 - 問題不是如何聲明結果變量。在我的問題中,F是一個整數,F/2用作數組索引。 vb如何可以有十進制數組索引? – SublymeRick

+0

你說得對,它沒有。正如我所說,這個部門會繼續進行但由於數組索引必須是整數,所以它會變成四捨五入的,所以'0'。5'成爲'1'作爲索引。 – Amadan

回答

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)])