我需要一个尽可能接近0的值。我需要能够除以这个值,但它应该是有效的。
Java是否提供了一种生成双精度的简单方法,只设置了最低有效位?或者我是否必须自己计算?
//编辑:一些背景信息,因为有人要求它。我知道我的灵魂并不是特别干净,但你在这里:
我正在写一个家庭作业的程序。它计算并联和串联电路中由多个电阻组成的电路的电阻。
这是一个为期两年的编程课程。我们的老师仍为我们设计课程,我们需要根据他的设计来实施。
并行电路涉及1/*resistance*
的计算,因此我的程序禁止创建0欧姆的电阻。物理学告诉你,无论如何这都是不可能的(你在每种金属中只有一点阻力)。
但是,我们应该用来测试程序的示例电路包含一个0欧姆的电阻。它被放置在一个串行电路中,但是电阻器不知道它们在哪里(老师就是这样设计的),所以我不能改变我的程序,只允许在串联电路中使用0欧姆电阻的电阻。
两种解决方案:
两者都不是很好。第一个似乎对我不太好,第二个也没有,但我必须决定。
这只是一个随机的选择,引发了这个问题。我不能解决它,所以切换到第一个不再是一个选项; - )
答案 0 :(得分:15)
持有最小正非零值类型
double
,2 -1074 的常量。它等于十六进制浮点文字0x0.0000000000001P-1022
,也等于Double.longBitsToDouble(0x1L)
。
答案 1 :(得分:0)
如果您希望除以“零”,您实际上只能使用Double.POSITIVE_INFINITY
作为结果。