在FunScript中使用十进制值

时间:2014-11-13 13:20:04

标签: f# funscript

尝试在FunScript中使用小数值时,我遇到异常。它可以通过使用:

简单地复制
Globals.window.alert(Globals.JSON.stringify(3M))

例外说:

System.Exception was unhandled
Message: An unhandled exception of type 'System.Exception' occurred in FunScript.dll
Additional information: Could not compile expression: Call (None, MakeDecimal,
      [Value (13), Value (0), Value (0), Value (false), Value (0uy)])

我怀疑这是一个FunScript限制,但我只是想检查一下。在这种情况下,如何在FunScript代码的上下文中使用十进制值?或者如何扩展Funscript以解决这个问题?

2 个答案:

答案 0 :(得分:2)

十进制原语是TODO feature。我想解决它的最佳方法是使用最近开源的.NET Framework reference source重新实现System.Decimal结构,然后将适当的表达式替换添加到编译器,就像它为不直接从.NET转换的其他类型一样。像DateTime,TimeSpan,Regex,F#选项或列表等JavaScript。

我猜这个功能没有优先考虑。如果您需要,请在Github page中打开一个问题,以便其中一个贡献者(也许是我自己)可以开始实施它?如果您认为自己可以自己做,请随时提交拉取请求。谢谢!

答案 1 :(得分:1)

这是JavaScript限制,因为JavaScript只有二进制浮点。 其中一个解决方案是创建自己的包含两个整数的类型:对于整数部分和小数部分