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

将0与双最小值进行比较

晏沈义
2023-03-14

为什么下面的返回为假?

int i = 0;
if ((double) i > Double.MIN_VALUE)
    System.out.print("true");
else
    System.out.print("false");

共有2个答案

习和通
2023-03-14

因为Double。最小值为正且非零。根据Oracle文档:

MIN_值:一个常数,包含2-1074型double的最小正非零值。它等于十六进制浮点文本0x0。0000000000001P-1022,也等于双倍。longBitsToDouble(0x1L)。

蒋联
2023-03-14

好吧,让我们看看我们从双人间得到了什么。最小值。当我们说,,

System.out.println(Double.MIN_VALUE);

它打印出最小双精度值为4.9E-324,为正且非零。

代码中将其与0进行比较。即使4.9E-324有多小,它仍然大于0。

如果你试图找到你能得到的最小的负二倍,那么你正在寻找,

System.out.println(-Double.MIN_VALUE);

这将返回-4.9E-324,这是您可以通过Double获得的最小负数。

 类似资料:
  • 今天,我正在浏览一些C代码(由其他人编写),并找到了这一部分: 我试图弄清楚这是否有意义。 < code>epsilon()的文档说明: 该函数返回1与大于1的最小值之间的差值,该最小值可[由双精度]表示。 这也适用于 0 吗,即 是大于 0 的最小值?还是有 到 之间的数字可以用表示? 如果不是,那么比较不就等于< code>someValue == 0.0吗?

  • 我可以将指向结构的指针类型转换为带符号的值以返回不同类型的错误吗。C标准是否允许这种行为,或者是一种未定义的行为。 我怎样才能让这个条件起作用?

  • 问题内容: 比较一个值与多个选项的最漂亮方法是什么? 我知道有很多方法可以做到,但是我正在寻找最整洁的方法。 我问是因为我希望这是可行的(当您查看时,这显然不是): 问题答案: 不要试图太偷偷摸摸,尤其是当它不必要地影响性能时。如果您确实有很多比较需要做,只需将其格式化即可。

  • 我正在尝试将哈希检查从服务器应用程序移动到PostgreSQL。换句话说,我需要调用一个对PGSQL的查询,它将来自查询的字符串与来自字段的字符串进行比较,并将相等比较的结果返回为bool,但如果没有关于clear SQL的过程,我不知道如何实现这一点。 upd:我有字段密码的表用户(当前为文本,将来为bytea)。我想写点什么 它必须返回true或false作为相等比较的结果。

  • 我有一个关于浮点数的机器ε的天真问题。 我们知道,双浮点数的机器ε约为10^-16,而浮点数的最小严格正值可以小到10^{-300}。既然机器ε是相对误差的上限,那么使用这个比机器ε小得多的数字10^{-300}有什么意义呢? 我一定是误解了浮点表示。你能澄清一下吗?

  • 我有一个本地数据库,一个登录页面和一个servlet。我可以从数据库中获得我想要的值,例如用户名和密码。我还可以在html登录表单中获得用户输入。我对HTML使用Request.GetParameter。我想检查数据库中的用户名是否等于输入的用户名,以及数据库中的密码是否等于输入的密码,否则访问被拒绝。这是我的代码: