用java的BigDecimal实现求PI(算法一)
来源:互联网 发布:java读取zip文件夹 编辑:程序博客网 时间:2024/06/05 12:40
用java的BigDecimal实现求PI
运行截图:
所用公式:
源代码:
//默认输出小数点后30位import java.math.BigDecimal;public class CalculatePI { public static void main(String[] args) { final int PRECISION = 31;//计算精度 final int THENUMBEROFCIRCLES = 23;//循环次数 BigDecimal PI = new BigDecimal(0); System.out.println("正在计算中...请稍后..."); long startTime = System.currentTimeMillis(); for (int i = 0; i < THENUMBEROFCIRCLES; i++) { //PI=PI+1/16^i(4/(8i+1)-2/(8i+4)-1/(8n+5)-1/(8n+6)) PI = PI.add((BigDecimal.valueOf(1).divide(BigDecimal.valueOf(16).pow(i))).multiply((BigDecimal.valueOf(4) .divide(BigDecimal.valueOf(8).multiply(BigDecimal.valueOf(i)).add(BigDecimal.valueOf(1)), PRECISION, BigDecimal.ROUND_DOWN))//ROUND_DOWN接近零的舍入模式(截取) .subtract(BigDecimal.valueOf(2).divide(BigDecimal.valueOf(8).multiply(BigDecimal.valueOf(i)).add(BigDecimal.valueOf(4)), PRECISION,BigDecimal.ROUND_DOWN)) .subtract((BigDecimal.valueOf(1).divide(BigDecimal.valueOf(8).multiply(BigDecimal.valueOf(i)).add(BigDecimal.valueOf(5)), PRECISION,BigDecimal.ROUND_DOWN))) .subtract((BigDecimal.valueOf(1).divide(BigDecimal.valueOf(8).multiply(BigDecimal.valueOf(i)).add(BigDecimal.valueOf(6)), PRECISION,BigDecimal.ROUND_DOWN))))); } System.out.println("PI=" + PI.setScale(30, BigDecimal.ROUND_DOWN) + "\n共用时:"//输出精度设置成30 + (System.currentTimeMillis() - startTime) / 1000.0 + "秒"); }}
0 0
- 用java的BigDecimal实现求PI(算法一)
- 用java的BigDecimal实现求PI(算法二)
- MentoCarlo算法求PI值_Java实现
- 用概率算法求pi值
- 概率算法求PI
- 用公式求pi的近似值
- java经典算法(一)求100以内的素数
- 求PI的值
- 求pi的值
- 求pi的值
- 求PI的近似值
- (数据结构与算法分析 一)------快速求幂算法,Java递归实现
- 用java实现欧几里得算法求两个数字的最大公约数
- PHP实现简单高精度的求PI方法
- Java-Pi的几种实现
- BigDecimal的介绍2(BigDecimal.setScale 处理java小数点 )
- 用概率算法计算PI的近似值
- 求近似PI的值
- 利用CAS实现SSO
- 加强版迷你DVD管理器
- 关于合伙人功能类型
- c++ 文章集锦
- JavaScript获取设置div的高度和宽度
- 用java的BigDecimal实现求PI(算法一)
- Java集合Collection与Iterator
- Swift3.0: 获取Wifi SSID
- log4j的NDC/MDC开发与应用,多线程、多平台环境中的跟踪
- Memcached详解
- Python Web 开发学习 - 第一个Python程序
- linux 电源管理 Generic PM之Suspend功能
- Jsoup的使用(详解)
- centos7.2环境中kettle环境搭建及任务推送配置详解