我一直在玩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