c# - 我这个翻译正确吗?

标签 c# vb6

抱歉,我只是需要一双额外的眼睛,我在怀疑自己。我正在努力将经典 vb6 转换为 c#,并且我已经查找了有关运算符优先级的表,但是我仍然无法正确计算。

VB6

= _
        m_curAmountInvested * (1 + m_dblInterestRate / 12) ^ m_intMonthsToAttain + _
        m_curAddDeposits * ((1 + m_dblInterestRate / 12) ^ m_intMonthsToAttain - 1) / (m_dblInterestRate / 12)

C#

= (currentAmountSaved * Math.Pow((1d + interestRate) / 12d, numberOfMonths)) +
                    ((monthlySavingsAmount * (Math.Pow((1d + interestRate) / 12d, numberOfMonths) - 1d)) / (interestRate / 12d))

最佳答案

在我看来,您的 C# 代码可能存在问题:

Math.Pow((1d + interestRate) / 12d, ...)

您的 VB6 代码具有:

(1 + m_dblInterestRate / 12) ^ ...

vb6 中 * 和/运算符的优先级高于 + 和 -,因此除法将发生在加法之前。然而,在 C# 版本中,由于括号的存在,情况并非如此(即先进行加法,然后进行除法)。

关于c# - 我这个翻译正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546120/

相关文章:

vb6 - 检查操作系统和处理器是 32 位还是 64 位?

javascript - 如何使用 jint 从 C# 函数返回值?

c++ - 如何将未知大小的字符串从 DLL 返回到 Visual Basic

vb6 - 为什么我的 VB6 项目的 PDB 与生成的 dll 不匹配?

字符串常量的 C# 编译时连接

shell - 在vb6中获取实际的Powershell返回值?

reference - VBP 文件引用线的格式

c# - 统一: How to find all neighbors recursively (neighbors of neighbors)?

c# - BinaryFormatter 异常

C# 序列化从 sqlite 返回的 DataTable 结果正在返回 XML 格式