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

摄氏到华氏度程序不会编译双浮点错误 [重复]

仰翔
2023-03-14
    /* 
    This program will convert Celsius to Fahrenheit and display a table 
    of their Fahrenheit equivalents.
    */
    // ---------1---------2---------3---------4---------5--------6---------7
    // 1234567890123456789012345678901234567890123456789012345678901234567890

    public class CelsiusToFarhenheit
    {
      public static void main(String[] args)
      {
          //Variables
          float fhdeg;
          float celdeg = 0;

      while (celdeg <= 20)
          {
             fhdeg = 1.8 * celdeg + 32;

          }
      if (celdeg <= 20)
          {
             System.out.printf( "    %3d C = %5.1f F\n", celdeg, fhdeg );
             celdeg++;
          }
      }
    }  

我一直收到这个错误。。。

摄氏度到法兴海.java:22:错误:不兼容类型:可能的有损转换从双倍到浮动fhdeg = 1.8 * celdeg 32;^ 1 错误

我不明白的是,如果我把它们初始化成浮点数...这是怎么回事?由于我不能让它初始化,我不知道我是否有任何其他错误,或者它是否会以我想要的方式打印出表格。

共有3个答案

何涵衍
2023-03-14

简单地说,float(32位)不能容纳double(64位)。检查java文档,但可以使用双精度浮点。

为了让你的程序工作,你需要通过后缀f,也就是1.8f,将1.8转换成float,或者将你的变量转换成double。

池照
2023-03-14

1.8双精度值,并使整个表达式 1.8 * celdeg 32 成为双精度值。Java 拒绝将此双精度值隐式转换为在赋值给 fhdeg浮动

相反,你可以写 fhdeg = (浮点)(1.8 * celdeg 32);

这将使计算保留为double,并且仅在将值赋给fhdeg时转换为 float。

符鸣
2023-03-14

< code > fhdeg = 1.8 * celdeg 32

1.8类型的文字。当您将浮点数相乘时,结果将是,它不适合浮点数。使用f后缀使其成为浮点数文字:

fhdeg = 1.8f * celdeg + 32.0f;
 类似资料:
  • 我正试着写一个程序,把华氏温度转换成摄氏温度。用户输入华氏温度值,程序打印出摄氏温度值。用户应该输入212作为华氏温度值,程序应该计算100.0作为摄氏温度值,但是当我想要得到100.0时,我却得到0.0作为摄氏温度值 我不确定问题可能出在哪里。操作顺序是可能的吗? 将摄氏温度转换为华氏温度的公式为:< code>C = 5 / 9 (F - 32)

  • 你好,我对Java很陌生,所以我仍然很熟悉它。现在我正在做一个课堂实验室,我已经基本弄清楚了,但是有一个部分我们需要将摄氏度转换为华氏度。我有点难过,因为我们需要将第一次转换保留为int数据类型。 在我们的实验室中,我们有测试类,根据测试类,第一个转换(int数据类型)输入-40摄氏度,运行转换方法,结果应该是-40华氏度。 这实际上是我正在编写的一个名为Conversion的用户定义类。 下面是

  • Python3 实例 以下实例演示了如何将摄氏温度转华氏温度:# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 用户输入摄氏温度 # 接收用户输入 celsius = float(input('输入摄氏温度: ')) # 计算华氏温度 fahrenheit = (celsius * 1.8) +

  • 本文向大家介绍C#程序将摄氏温度转换为华氏温度,包括了C#程序将摄氏温度转换为华氏温度的使用技巧和注意事项,需要的朋友参考一下 首先,设置摄氏温度- 现在将其转换为华氏度: 您可以尝试运行以下代码将摄氏温度转换为华氏温度。 示例 输出结果

  • 我需要创建一个程序,该程序将输出一个格式化的两列列表,将摄氏度转换为华氏度,结束于用户输入的起始温度40度的温度。它应该看起来像这样:(除了它从用户输入的任何温度中计数) 我已经为此工作了好几个小时,我不知道如何修复它。不仅是从1开始的摄氏度(我认为是(cel=1;)一点),但我不知道为什么华氏温度计算不正确。 这是我目前的消息来源:

  • 问题内容: 我正在尝试将华氏度转换为摄氏温度。现在当我使用此方法时出现错误: 然后再次尝试给定 (5.0), 那么为什么工作? 问题答案: 值“ 5”和“ 9”是整数,并且将5/9视为,这是为什么您得到错误答案的原因。当两个整数相除时,答案是自动的。有必要将“5”和“ 9”之一写为5.0和9.0 更好的做法是始终将as 和or都写为and。 由于乘法和其他运算大多是递归的,因此该语句也可以正常工作