2013-11-21 112 views
1

我有下面的動作腳本,並在Rails代碼上尋找等效的ruby來完成相同的工作。Ruby on Rails相當於actionscript

其中dbwall和db_wall = 50

var tb= Math.pow((1/10),(dbwall)/(10)); 

目前我已經使用:

@tb = ((1/10) ** (db_wall)/10) 

,並得到0.0,這不是我所需要的: 但是在ActionScript中實際問題的答案是0.00001

它只是一個正確的公式,但不顯示小數位的情況?還是有更多的呢?

回答

2

Ruby中的整數除法返回整數(如C),因此1/10等於0。爲了獲得Float劃分,明確地使其中一個操作數成爲Float例如1.0/10

+0

好吧,所以改爲@tb =((1.0/10)**(wall_db/10)),這樣1.0000000000000003e-05? – drac

+0

這就是0.000010000000000000003的科學記數法,它與您期望的答案接近,當您使用浮標時您可能會收到答案。 – Max

+0

謝謝它一定是正確的答案! – drac

1

您也不需要包含幾個括號。

@tb = ((1/10) ** db_wall/10) 

簡單地工作。如果你繼續使用@,我不會讓這個變量可以通過@來訪問視圖,只需將它關閉並在將來的計算中使用它。

Max回答的問題將是解決這個簡單問題的最佳答案。