如何乘以* 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. 使用非常大或非常小的數字時,scipy.optimize.fmin_slsqp存在問題
- 3. 數字限制 - 乘以非常大的常量時是否有限制?
- 4. C++ - 一個非常非常大的數字
- 5. 在C++中使用非常大的數字的函數
- 6. 非常大在一個非常大的B分數
- 7. decimal.InvalidOperation,DivisionImpossible非常大的數字
- 8. 非常大的數字產品
- 9. 增加非常大的數字在VB.NET
- 10. vb.net中非常大的數字
- 11. BigDecimal.movePointRight()掛起非常大的數字
- 12. 的TeeChart:舍入數字例外對於非常大的數據
- 13. 非常非常長的小數的算術運算
- 14. Python:數字範圍非常大?
- 15. laravel app.js非常大的文件大小
- 16. 模數從非常大的整數C#
- 17. 非常大的整數乘法和加法
- 18. Opened_files非常大
- 19. 對於一個非常大的數字計算
- 20. ExtJs 4 - Window.show() - 窗口大小非常小
- 21. 由標量opencv矩陣劃分產生非常大/小數字
- 22. 分配的數組的大小非常大
- 23. 在數字格式去掉「E」爲非常小的數字
- 24. C++函數斬波非常小的數值
- 25. 非常小的分數和「雙」型
- 26. Resharper與大或*非常*大文件
- 27. 創建/調整數組的大小......不能使用非常量?
- 28. 處理非常大的數據幀
- 29. Ruby中的非大寫常數名稱
- 30. 如何處理非常大的數據?
爪哇'doubles'覆蓋範圍4.9 * 10^-324〜1.7 * 10^308,陽性或陰性。夠了嗎?如果是這樣,你可以使用普通的'*'運算符。 – Douglas
數學實用課有很多對數方法,但我支持道格拉斯的評論,如果這是一個答案,我會對它投票。 –
你的意思是乘以1e-20? –