java - 小于运算符也评估相等值

标签 java operators

在评估检查 Float 是否小于特定值的条件时遇到一些奇怪的行为。

    String s = "3700.7777";

    System.out.println(Float.parseFloat(s));

    if(Float.parseFloat(s) < 3700.7777){

        System.out.println("Hi");

    }

即使“s”的值与条件中的值相同,代码仍然打印“Hi”。 由于我使用的是小于运算符,因此我的理解是,对于任何等于或大于 3700.7777 的值,条件都会失败,并且不会打印“Hi”。

最佳答案

将您的条件更改为:

if(Float.parseFloat(s) < 3700.7777f) {
                                  ↑

参见Primitive Data Types - float欲了解更多信息。

您可能还想知道What Every Computer Scientist Should Know About Floating-Point Arithmetic .

关于java - 小于运算符也评估相等值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23105724/

相关文章:

java - 使用 spring jpa 编写 group by 表达式

java - Hibernate:为多个连接表上的属性创建映射

c++ - 使用重载的下标运算符赋值

c++ - C++中的逻辑异或运算符?

c# - 为值类型实现 operator++ 的正确方法是什么?

python - 在处理 numpy 数组时,运算符 "numpy.dot()"、 "* "和 "@"之间有什么区别?

objective-c - 是什么 ? : operator

java - 我的过渡不起作用

java - 如何使用流按除以给定除数的余数对元素进行分组?

java - Android AsyncTask 总是崩溃