我一直在玩Script#,我想知道C#數字如何轉換爲Javascript。我寫的代碼腳本#號碼如何映射到Javascript?
int a = 3/2;
這一點,看着編譯的JavaScript的相關位:
var $0=3/2;
在C#中,分配給int
的3/2
結果是1
,但在Javascript中,這隻有一個數字類型,是1.5
。由於C#和Javascript行爲之間的這種不一致,並且由於編譯後的代碼似乎無法彌補它,所以我應該假設在編譯爲Javascript時,用C#編寫的數值計算可能表現不正確?
JavaScript中的所有數字在C#中實際上是雙打的沒有int/float/long/decimal等價物)。這包括數學運算符,如上所述(所有運算符都在雙打上有效完成)。我認爲兩者都被定義爲按照[IEEE754-binary64/FP64(或「double」)](http://en.wikipedia.org/wiki/Double-precision_floating-point_format)工作(儘管可能出現跨體系結構的細微差異在邊緣情況下:考慮x86有一個80位內部FPU)。 – 2011-12-01 04:53:29
@pst - 感謝您的額外信息。在我記起C#如何處理小數之前,我開始輸入最後一段,但後來我想我會把它留在我的回答中,因爲很多JavaScript程序員都沒有意識到這種行爲(因此最終的括號聲明)。 – nnnnnn