BigDecimal计算开方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public static void main(String[] args) { BigDecimal big = new BigDecimal( "68" ); BigDecimal reuturn = sqrt(big, 2 ); String result = reuturn.stripTrailingZeros().toPlainString(); System.out.println( "result= " +result); //8.25 } /** * * @Title: sqrt * @Description: TODO 计算开方 * @param value 要计算的数字 * @param scale 保留多少小数位 * @return * @Author:wushigao * @CreateDate:2022年10月10日 下午2:34:09 */ public static BigDecimal sqrt(BigDecimal value, int scale){ BigDecimal num2 = BigDecimal.valueOf( 2 ); int precision = 100 ; MathContext mc = new MathContext(precision, RoundingMode.HALF_UP); BigDecimal deviation = value; int cnt = 0 ; while (cnt < precision) { deviation = (deviation.add(value.divide(deviation, mc))).divide(num2, mc); cnt++; } deviation = deviation.setScale(scale, BigDecimal.ROUND_HALF_UP); return deviation; } |
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构