Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浮点与双精度(Java)_Java_Floating Point Precision - Fatal编程技术网

浮点与双精度(Java)

浮点与双精度(Java),java,floating-point-precision,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浮点中的任何数字都可以存储在java的Double中而不会丢失任何精度,这是真的(还是假的) 谢谢是的;将双倍体铸造到浮体可以产生不同的结果

有没有过这样的情况,在相同的输入下,这两种方法会返回不同的值

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

int compare2(float a, float b)
{
    return Float.compare(a, b);
}
同样,可以存储在java浮点中的任何数字都可以存储在java的Double中而不会丢失任何精度,这是真的(还是假的)

谢谢

是的;将双倍体铸造到浮体可以产生不同的结果

如果
a
b
之间的差异太小,无法以浮点形式显示,
compare2()
将返回
0
,而
compare1()
将不返回


你刚刚编辑了这个问题,把你的问题颠倒过来了。新的答案是:


我几乎可以肯定它们总是一样的。

A
double
只会比
float
提供超过小数点的精度。如果所有这些额外的位都为零,那么您的值与浮点值相同。因此,是的,所有的
float
s都可以转换成
double
s而不会丢失精度。

由此可知,这两个函数总是返回相同的结果。

关于float是double的子集,我的问题是什么?@user1508893:我很确定它是,但我不确定。实际上,我在这个问题上犯了一些错误。刚刚更新过。很抱歉它还提供了1023的最大指数,而不是127。