【问题标题】:multiplying int with double in C#在 C# 中将 int 与 double 相乘
【发布时间】:2014-05-26 21:52:40
【问题描述】:

当我试图将 int 乘以 double 时,我遇到了问题。 int 是 baseSalary 和 employeeSapary(这是 int 数组)和 佣金是双常数 = .09 我需要在 int 中获取employeeSalaries,但一直遇到一个问题,说我不能将 int 与 double 相乘。我尝试将 double 转换为 int 但在这种情况下 eployeeSalary 将始终为 baseSalary 因为佣金将始终为 0 (s*commission)=0 如何获得employeeSalaries 的有效分数? 谢谢!

private int CalculateAndStoreSalary(int s, int i)

        {
            int.TryParse(txtSales.Text, out s);
            employeeSalaries[i] = baseSalary + (s * commission);          
            return employeeSalaries[i];
        }

【问题讨论】:

  • 对于货币,您应该使用decimal以避免舍入错误。
  • 在乘法后将整个表达式转换为 int。
  • 我知道,但这是一项任务,教授告诉我们使用双精度表示作为佣金 (.09) 给出的销售额百分比。并将其声明为类(实例)变量
  • 我不知道如何投射我刚开始使用 c#。我现在将 double 放入 int 但我该如何计算employeeSalaries?
  • firstNumber 和 i 一样毫无意义,不是吗?

标签: c# int double


【解决方案1】:

您可以将其四舍五入,并将其分配为:

employeeSalaries[i] = Convert.ToInt32(Math.Round(baseSalary + (s * commission), 0));

这可能不准确,但类似的方法应该可以解决问题,将其四舍五入到最接近的零(或使用 Floor 或 Ceiling 始终向下/向上舍入),然后在赋值时将其转换为整数。

【讨论】:

    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多