当前位置: 首页 > 面试题库 >

Java:双重vs浮动

步胜
2023-03-14
问题内容

在另一个Bruce Eckel练习中,我编写的代码采用一种方法并更改另一个类中的值。这是我的代码:

class Big {
  float b;
}

public class PassObject {
  static void f(Letter y) {
    y.c = 'z';
  } //end f()
  static void g(Big z) {
    z.b = 2.2;
  }

  public static void main(String[] args ) {
    Big t = new Big();
    t.b = 5.6;
    System.out.println("1: t.b : " + t.b);
    g(x);
    System.out.println("2: t.b: " + t.b);
  } //end main
}//end class

它抛出一个错误,提示“可能会丢失精度”。

PassObject.java:13: possible loss of precision
found: double
required : float   z.b = 2.2
passobject.java:20: possible loss of precision
found : double
required : float   t.b = 5.6

无法doubleS为floatS作为呢?

提前致谢


问题答案:

是的,但是您必须指定它们是浮点数,否则将它们视为双精度数:

z.b = 2.2f

数字末尾的“ f”使其成为浮点数而不是双精度数。

Java不会自动将double范围缩小为float。



 类似资料:
  • 问题内容: 是否曾经有过两个浮点值之间的比较()如果将它们进行比较而返回但将它们与FLOAT进行比较而返回的情况? 作为小组项目的一部分,我正在编写一些过程来比较任何给定类型的两个数值。这里是4种我不得不应付干脆:,,和。因此,我想将一个函数分组并归为一个函数,也就是将任何一个都进行转换并进行比较。 这会导致任何不正确的结果吗? 谢谢。 问题答案: 如果将双精度型转换为浮点型,并且它们之间的差异超

  • 我有一个文件,当我通过从命令提示符运行它时,它可以正常工作。然而,双击它不会。双击正确启动程序,但内部的某些东西不起作用。 为了自己找出问题所在:双击可运行的与从命令行运行它有什么区别?

  • 问题内容: 就Java而言,当有人问: 什么是多态性? 将超载或重载是一个可以接受的答案? 我认为还有更多。 如果你有一个抽象基类,它定义了一个没有实现的方法,并且你在子类中定义了该方法,那该方法是否仍然覆盖? 我认为过载不是肯定的正确答案。 问题答案: 表达多态性的最清晰方法是通过抽象基类(或接口) 此类是抽象的,因为该方法不适用于人类。只有男性和女性子类别才可以定义。同样,人类是一个抽象的概念

  • 我编写了一个程序来演示Go中的浮点错误: 它打印: 这与用C编写的相同程序的行为相匹配(使用双代码类型) 但是,如果改用,程序就会陷入无限循环!如果将C程序修改为使用而不是,它将打印 为什么在使用时,Go程序的输出与C程序的输出不一样?

  • 问题内容: 是否有用于双重比较的Java库?例如 我开始的每个项目最终都要重新实现,然后粘贴代码并进行测试。 注意,为什么最好使用第三方JAR是IBM的建议一个很好的例子: “如果您不知道基础测量的规模,那么使用测试“ abs(a / b-1)<epsilon”可能比简单比较差异更可靠。” 我怀疑很多人会想到这一点,并说明即使是简单的代码也可能不是最优的。 问题答案: 番石榴有。

  • 问题内容: 我的问题 1. 这些方法中的任何一种是专业的网页设计师所偏爱的吗? 2. 绘制网站时,Web浏览器是否会首选这些方法? 3. 这仅仅是个人喜好吗? 4. 我还缺少其他技巧吗? 5. 注意:以上问题与设计多列布局有关 我的想法: 我确定我会遗漏大量东西,例如某些会破坏布局的异常,但display:table-cell;似乎效果最好,而且我想我会float:left;像以前那样一头雾水地开