Ncalc 公式计算出意外结果
Ncalc formula evaluates to unexpected result
我有一个要计算的公式 "6*6*6*6*6*6*5*6*6*6*5*6*5" Ncalc returns = -1031662592 当答案应该是(我希望是)= 7558272000
代码相当简单
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
关于差异以及如何解决它的任何想法?我知道我可以编写自己的小函数来拆分字符串并在循环中进行数学运算,但我只是先问了这个问题。
我的想法是设置 result = 6*6*6*6*6*6*5*6*6*6*5*6*5 会导致溢出其限制 2,147,483,647 因为它似乎默认为整数,结果被解释为负数。
我相信
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
会修复它。
我有一个要计算的公式 "6*6*6*6*6*6*5*6*6*6*5*6*5" Ncalc returns = -1031662592 当答案应该是(我希望是)= 7558272000
代码相当简单
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
关于差异以及如何解决它的任何想法?我知道我可以编写自己的小函数来拆分字符串并在循环中进行数学运算,但我只是先问了这个问题。
我的想法是设置 result = 6*6*6*6*6*6*5*6*6*6*5*6*5 会导致溢出其限制 2,147,483,647 因为它似乎默认为整数,结果被解释为负数。
我相信
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
会修复它。