当前位置: 首页 > 知识库问答 >
问题:

Java计算方法返回的是1.0而不是0.5?做什么?

拓拔辰钊
2023-03-14

当用最大值70和最小值59测试该代码时,它返回1.0而不是0.5。我的公式错了吗?第二个if语句也是针对这些方向的:(public static double hdd(int max,int min),返回一天的hdd。如果max或min为-999(缺少),则返回0.0。如果max

/**
 * Calculate heating degree day.
 * @param max The highest temperature for a given day.
 * @param min The lowest temperature for a given day.
 * @return heating degree day data for this day.
 */
public static double hdd(int max, int min)
{
    double average = (max + min) / 2;
    double hdd = 0.0;

    if (average < 65.0)
    {
        hdd = 65.0 - average;
    }
    else
    {
        hdd = 0.0;
    }

    if(max == -999 || min == -999)
    {
        hdd = 0.0;
    }
    else if (max < min)
    {
       hdd = 0.0;   
    }


    return hdd;

共有1个答案

朱啸
2023-03-14

您的问题是(max+min)/2是一个整数除法,这意味着它被截断为下面的整数。在本例中,(70+59)/2给出64,然后将其存储在一个double中。但这不会恢复丢失的0.5

在除法之前,需要将分子或分母转换为double。编写2.0代替2是实现这一目标的一种方法。

 类似资料:
  • 我有一个项目,其中我创建了一个BankAccount超级类和一个SavingsAccount子类。一切都很好,但我在返回我特别想要的字符串时遇到了麻烦。 示例:(裁剪) 驱动程序类将对BankAccount使用toString方法,并打印以下内容: (这对于这个超类来说是完美的) 但是,下面是SavingsAccount子类 调用SavingsAccount的toString方法时,它会打印: S

  • 问题内容: 使用JQuery或任何其他类似框架从自定义URL / Web服务中加载HTML内容非常容易。到目前为止,我已经使用了很多次这种方法,并且发现性能令人满意。 但是所有书籍,所有专家都试图让我使用JSON而不是生成的HTML。它比HTML优越得多吗? 它快很多吗? 它在服务器上的负载是否要小得多? 另一方面,我有一些使用生成的HTML的原因。 它是简单的标记,通常与JSON一样紧凑或实际上

  • 问题内容: Go 包中的大多数输出​​方法都会返回,例如的方法和函数。但是,一些输出方法(例如的方法)会返回。这使得不方便实现在以下方面或不存储的中间值,并输入从将其转换到。这种差异的原因是什么? 问题答案: 复制的数据可能超过int32字节。 使用和接口,数据量受给定切片的大小限制,该切片的长度受当前体系结构的限制。

  • 此方法的myNumSides等于4,myNumSides是用户输入的。在myAngle被施放为双倍后,它仍然返回0.0而不是0.5。这是为什么呢?

  • 问题内容: 据我所知,使用或实例化对象分别返回或的新实例。具有 新标识 的新实例对象。 在我实际测试它之前,这对我来说是很清楚的,我注意到它实际上返回了而不是预期的: 如预期的那样,分别使用和创建对象时,也会表现出这种行为: 我可以在状态文档中找到唯一相关的信息: […]例如,return和return 。 如果未提供任何参数,则构造函数将创建一个新的空元组。 可以说,这不足以回答我的问题。 那么

  • 假设我有一个类来为游戏中的一个项目建模,如下所示: (假设正确重写的和以比较内部枚举) 现在我想要一种方法来用中的getter来区分这些项:我应该返回还是名称?一般情况下返回是好的做法吗?或者是否有更好的方法来区分这些s?因为返回枚举类似于向我公开rep,而且我不希望我的同事直接使用来比较的 我想到的办法如下: 执行类似; 要执行; ; 要执行; 我不知道该怎么做,我希望有经验的程序员能给我一些启