[英]How well do Script# numbers map to Javascript?
我一直在玩Script# ,我想知道C#數字如何轉換為Javascript。 我寫了這段代碼
int a = 3 / 2;
並查看了已編譯Javascript的相關內容:
var $0=3/2;
在C#,結果3 / 2
分配給int
是1
,但在Javascript,其中只有一個號碼類型,是1.5
。
由於C#和Javascript行為之間存在這種差異,並且由於編譯后的代碼似乎無法彌補這一點,因此我是否應該假定用C#編寫的數值計算在編譯為Javascript時可能會出現錯誤的行為?
我是否應該假定用C#編寫的數值計算在編譯為Javascript時可能會出現錯誤的行為?
是。
就像您說的那樣,“編譯后的代碼似乎無法對其進行補償”-盡管對於您提到的情況,在將a
聲明為int
的情況下,使用var $0 = Math.floor(3/2);
。 但是,如果您不控制“編譯器”的工作方式,那么您會很煩。 (您可以手動更正JavaScript,但是每次重新生成JavaScript時都必須這樣做。
還請注意,由於JavaScript表示小數位的方式,您也可能會遇到小數問題。 大多數人在第一次發現JavaScript會告訴您0.4 * 3
等於1.2000000000000002
時就感到1.2000000000000002
。 有關更多詳細信息,請參見關於此問題的許多其他問題之一,例如, 如何處理JavaScript中的浮點數精度? 。 (實際上,我認為C#會以相同的方式處理小數,因此也許這個問題不會讓人感到驚訝。不過,這可能是新手的陷阱……)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.