java - float 与 double(在 Java 中)

标签 java floating-point-precision

在给定相同输入的情况下,这两种方法是否会返回不同的值?

int compare1(float a, float b)
{
    return Double.compare(a, b);
}

int compare2(float a, float b)
{
    return Float.compare(a, b);
}

出于同样的原因,任何可存储在 java 的 Float 中的数字都可以存储在 java 的 Double 中而不会丢失任何精度,这是否正确(或错误)?

谢谢

最佳答案

<罢工>是的;将 double 转换为 float 会产生不同的结果。

如果 ab 之间的差异太小而无法显示在 float 中,compare2() 将返回 0compare1() 不会。


您刚刚编辑了问题以颠倒您的要求。新的答案是:

我几乎可以肯定它们将永远相同。

关于java - float 与 double(在 Java 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444567/

相关文章:

java - 以编程方式为 FrameLayout 的子项设置 layout_gravity?

c# - 将 int 类型转换为 float 将 DivideByZeroException 转换为 Infinity

C 对 float 的奇怪近似

c# - 这是占一定小数位数的有效 float 比较吗?

java - 什么是反斜杠字符 (\\)?

java - Guava 事件总线 : What does it mean to listen to event supertypes (such as EventObject or Object)?

java - 一段时间后终止 Spring Boot 应用程序

java - 多接口(interface)机中的 MulticastSocket.setInterface - 如何使用?

floating-point - 二进制 float 的十进制精度

lisp - 为什么CCL中的round不正确?