Использование десятичных значений в 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 ответа

Десятичный примитив - это функция TODO. Я предполагаю, что лучшим способом решения этой проблемы было бы переопределение структуры System.Decimal с использованием недавно открытого исходного кода.NET Framework, а затем добавление подходящих замен выражений в компилятор, как это делается для других типов, которые не переводятся непосредственно из.NET JavaScript, например DateTime, TimeSpan, Regex, опция F# или список и т. д.

Я думаю, что функция не была приоритетом. Если вам это нужно, не могли бы вы открыть проблему на странице Github, чтобы один из участников (возможно, я) мог начать ее реализацию? Если вы считаете, что можете сделать это самостоятельно, пожалуйста, отправьте запрос. Спасибо!

Это скорее ограничение JavaScript, потому что JavaScript имеет только двоичную с плавающей точкой. Одним из решений будет создание собственного типа, содержащего два целых числа: для целочисленной части и дробной части

Другие вопросы по тегам