首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否停止nCalc使用ToUInt16()?

是否停止nCalc使用ToUInt16()?
EN

Stack Overflow用户
提问于 2016-07-24 03:05:30
回答 1查看 280关注 0票数 2

我试图在我的应用程序中使用nCalc,但由于某种原因,我遇到了想要转换为UInt16的问题,并导致了错误。

代码语言:javascript
复制
string evalstring = "-.503937 ^ 2";
Expression e = new Expression(evalstring);

this.Value = Convert.ToDouble(e.Evaluate());

这抛出了;

代码语言:javascript
复制
System.OverflowException occurred
  HResult=-2146233066
  Message=Value was either too large or too small for a UInt16.
  Source=mscorlib
  StackTrace:
       at System.Convert.ToUInt16(Int32 value)
  InnerException: 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-24 05:00:50

在NCalc表达式中,^是按位异或运算符,它接受两个无符号16位整数操作数。在您的表达式中,NCalc尝试将-.503937转换为UInt16值,并抛出OverflowException,因为该数字小于零。

如果需要求幂,请改用Pow函数:

代码语言:javascript
复制
string evalstring = "Pow(-.503937, 2)";
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38545490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档