首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ncalc公式计算为意外结果

Ncalc公式计算为意外结果
EN

Stack Overflow用户
提问于 2016-09-22 07:30:11
回答 1查看 205关注 0票数 0

我有一个要计算的公式“6*6*6*6*6*5*6*6*6*5*6*5*6*6*5*6*5”Ncalc return= -1031662592,而答案应该是(我期望是)= 7558272000

代码相当简单明了

代码语言:javascript
复制
 Function StraightEval(Formula As String)
    Try
        Dim X As New Expression(Formula)
        Dim result = X.Evaluate
        Return result
    Catch ex As Exception
        MessageBox.Show(ex.Message)
        Return "Error " & ex.Message
    End Try

End Function

对于这种差异以及如何修复它有什么想法吗?我知道我可以编写自己的小函数来拆分字符串,并在循环中进行数学运算,但我只是先问问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 10:56:24

我的想法是设置result =6*6*6*6*6*6*5*6*6*6*5*6*6*6*5*6*5*5*5*5*5会导致溢出其限制2,147,483,647,因为它似乎默认为整数,结果被解释为负数。

我相信

代码语言:javascript
复制
Function StraightEval(Formula As String)
    Try
        Dim X As New Expression(Formula)
        Dim result as Long = X.Evaluate
        Return result
    Catch ex As Exception
        MessageBox.Show(ex.Message)
        Return "Error " & ex.Message
    End Try

End Function

会解决它的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39628029

复制
相关文章

相似问题

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