【问题标题】:I can't get the double result in my code [duplicate]我无法在我的代码中得到双重结果[重复]
【发布时间】:2013-06-28 09:21:48
【问题描述】:

在我的代码中,我无法得到正确的划分,我不知道为什么

例如,我有;

int N =5;
int df = 2;
double value = N/df;

当我使用前面的代码时,我得到 value = 2 , 我需要返回 2.5

【问题讨论】:

  • 两个值都是整数。将其中一个值转换为双倍。
  • 正如 AVD 所说:double value = (double)N/df;
  • 是的,转换发生在整数除法之后,此时您已经丢失了小数部分。

标签: c# math


【解决方案1】:

您可以将其中一个参数转换为双精度:

  int N = 5;
  int df = 2;
  double value = ((double)N)/df;

或者您可以最初将 N 和/或 df 声明为 Double

  double N = 5;
  double df = 2;
  double value = N/df;

【讨论】:

  • 对不起,但它确实有效,因为我明确地将 N 和 df 声明为双精度。您必须在这样的表达式中添加“.0”:5.0 / 2.0 这可能是不明确的(5 - 整数,5.0 - 双)
  • 抱歉,Dimitry,它确实有效。我脑子里有别的东西。
【解决方案2】:

一个整数除以另一个整数得到一个整数。 两者之一应该是双重的。 这将起作用:

double N =5.0;
double df = 2.0;
double value = N/df;

这将起作用:

double N =5;
int df = 2;
double value = N/df;

【讨论】:

  • @JeffRSon,你是对的。我脑子里有别的东西。对不起。
【解决方案3】:

您还可以在计算中添加任何双精度值

double N =5;
double df = 2;
double value = N*1.0/df;

【讨论】:

    【解决方案4】:
    try this......
    
    int N =5;
    int df = 2;
    double value = (double) N/df;
    

    【讨论】:

    • 虽然答案有效,但请尝试提供解释。
    猜你喜欢
    • 2014-06-12
    • 2020-09-18
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2020-07-18
    相关资源
    最近更新 更多