我有非常大的数字和复杂的字符串方程要用java来解决。为此,我使用BeanShell。在这个等式中,还可以包含按位的二元运算,例如
(log(100)*7-9) & (30/3-7)应该是1。正如我所说的,我需要处理很大的数字,为此,我将L添加到每个数字中,到目前为止,它工作得很好。但是在这里我遇到了一个问题,当我计算像3/2这样的东西时,我只得到1,而不是1.5。然后,我尝试为每个数字添加一个双精度值的D,这给了我1.5,但是在这里,我在二进制操作and or xor等方面收到了一个错误,因为它们只能应用于整数值。
有没有一种方法可以在需要的时候接收double值,同时仍然执行二进制操作(当然只有当我有整数值的时候)?
发布于 2013-10-09 20:46:00
我会在一开始将操作数声明为双精度。在我看来,离开Beanshell来根据答案进行升级/降级会给您的代码带来不确定性。
您可以将双精度数转换为整型,然后每次执行二进制操作。由于这是一个缩小的原语转换,因此您应该熟悉Java Language Specs。
https://stackoverflow.com/questions/19255912
复制相似问题