如何乘以* 10 ^( - 20)。我找不到任何对数函数,所以我希望会有一些其他的函数用于乘以非常小或非常大的数字
回答
我不会使用日志功能,我会用Math.pow
double d = a * Math.pow(10, -20);
Java支持浮点文字,所以你可以写:'a * 1.0e-20' – Douglas
您可以使用BigDecimal类,它可以存储较大的值用于计算。
为什么这个答案给出了-1? OP在哪里提到浮点值?这个问题最近有过修改吗?即使他使用的是浮点数,对非常小的数字进行计算并使用浮点数也会导致很多问题,您可以通过使用类BigDecimal来避免这些问题。这是关键,要保持准确性并避免浮点运算出现的问题。 – Asaf
@JimLewis - 在使用浮动/双精度进行计算时,没有使用BigDecimal的预防 - 相反,它更安全并减少了使用浮点数和双精度类型的缺陷。看看[这里](http://www.ibm.com/developerworks/java/library/j-jtp0114/)或[这里](http://stackoverflow.com/questions/6320209/javawhy-should-我们使用bigdecimal而不是double-in-the-real-world) –
@inistel:我被你的原始答案中的第一句话所误导,其中指出:“这个类表示不变的整数长度。”但我现在看到它也可以表示非整数。我仍然认为这不是OP应该研究的解决方案,但我会很高兴地取消掉落。 –
Java doubles
覆盖范围4.9 * 10^-324至1.7 * 10^308,正数或负数。如果您的数字在该范围内,并且您很乐意使用浮点精度,则可以使用正常的*
运算符。
Math.log
方法的文档是here。
- 1. MATLAB:非常小的数字除以非常小的数字
- 2. 寻找两个非常大的数字乘以一个非常大的数字的模数
- 3. 使用非常大或非常小的数字时,scipy.optimize.fmin_slsqp存在问题
- 4. 对于非常大的数字执行nCr和逆阶乘(MODm)
- 5. 非常数大小的结构数组
- 6. 数字限制 - 乘以非常大的常量时是否有限制?
- 7. 最小的整数大于非常大的数
- 8. 显示非常大的数字,用byte []
- 9. C++ - 一个非常非常大的数字
- 10. 在C++中使用非常大的数字的函数
- 11. 在IOS中相乘两个非常大的数字
- 12. 非常函数使用常量性
- 13. 非常大在一个非常大的B分数
- 14. Exponentiate非常大的数字中的R
- 15. 查找非常大的数字
- 16. 增加非常大的数字在VB.NET
- 17. C++中功耗非常大的数字
- 18. decimal.InvalidOperation,DivisionImpossible非常大的数字
- 19. 处理非常大的数字
- 20. 如何排序非常大的数字
- 21. BigDecimal.movePointRight()挂起非常大的数字
- 22. 非常大的数字产品
- 23. Streamtokenizer读取非常大的数字?
- 24. vb.net中非常大的数字
- 25. ember.js对于大数据非常缓慢
- 26. 的TeeChart:舍入数字例外对于非常大的数据
- 27. 为非常大的数字计算Eulers Totient函数JAVA
- 28. 非常非常长的小数的算术运算
- 29. Python:数字范围非常大?
- 30. 哪个是用于执行涉及非常大的数字
爪哇'doubles'覆盖范围4.9 * 10^-324〜1.7 * 10^308,阳性或阴性。够了吗?如果是这样,你可以使用普通的'*'运算符。 – Douglas
数学实用课有很多对数方法,但我支持道格拉斯的评论,如果这是一个答案,我会对它投票。 –
你的意思是乘以1e-20? –