最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java簡單計算圓周率完整示例

 更新時間:2018年05月08日 11:56:15   作者:java_zhao33699  
這篇文章主要介紹了Java簡單計算圓周率,結(jié)合完整實例形式分析了Java計算圓周率的原理與操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下

本文實例講述了Java簡單計算圓周率。分享給大家供大家參考,具體如下:

這兩天在網(wǎng)上看到一個題,已知Pi可以用函數(shù)4 * (1 – 1/3 + 1/5 – 1/7 + …) 計算,計算出小數(shù)點后五位(計算圓周率)。于是手動寫了一個小demo,歡迎大家留言,進(jìn)行交流與指教。

完整示例代碼如下:

package math;
public class PiTest {
  private static int bytelimit = 5;// 小數(shù)后限制位數(shù)
  /**
   * @author zhao33699
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    // 已知Pi可以用函數(shù)4 * (1 – 1/3 + 1/5 – 1/7 + …) 計算,小數(shù)點后五位----計算圓周率
    // 思路:按照上述公式計算出5位值,和下一次5位值比較,如果相同則為最終結(jié)果,
    // 如果不同,則保存新值,繼續(xù)與在下次的值比較直至相同
    double pitemp = 0;// 根據(jù)公式所得值
    double finalpi = 0; // 上次所得值(小數(shù)點后五位)
    double pi = 0;// 本次所得值(小數(shù)點后五位)
    int i = 0;// 計數(shù)器
    double b = 0;// 公式的括號內(nèi)的值
    int ii = 20;// 所得相同值次數(shù),可限制最后是有連續(xù)ii次所得相同值
    int finalii = 20;// 與ii值相同,用于在ii值變化后 ,恢復(fù)ii值
    // int iii=20;//限制相同次數(shù)
    while (true) {
      // 次數(shù)控制
      if (i == 1000000) {
        break;
      }
      double rs = 1 + 2 * i;
      double d = 1 / rs;
      if (i % 2 == 0 && i != 1) {
        b = b + d;
        // System.out.println("---"+i+"----正------***"+b);
      } else {
        b = b - d;
        // System.out.println("---"+i+"----負(fù)------***"+b);
      }
      i = i + 1;
      // System.out.println(b);
      pitemp = (b) * 4;
      // System.out.println(pitemp);
      // 小數(shù)點后位數(shù)大于等于5位
      if (String.valueOf(pitemp).length() > bytelimit) {
        pi = subInt(pitemp);// 截取小數(shù)點后5位的值
        System.out.println(i + "次---pi--####" + pi + "---final--####"
            + finalpi);
        // 如果上次結(jié)果與本次結(jié)果相同,限制連續(xù)次數(shù)-1;
        // 如果不相同,不管前面連續(xù)多少次結(jié)果相同,將限制連續(xù)次數(shù)恢復(fù)初始值,并保存本次的新值,繼續(xù)準(zhǔn)備與下次比較
        if (finalpi == pi) {
          System.out.println("第" + (finalii + 1 - ii)
              + "次-----相同----------最終結(jié)果-------------finaoanoaof"
              + pitemp);
          ii = ii - 1;
          if (ii == 0) {
            System.out.println("$$最終所得的小數(shù)" + pitemp);
            System.out.println("$$最終所得的前五位小數(shù)" + pi);
            break;
          }
        } else {
          finalpi = pi;
          ii = finalii;
        }
      }
    }
  }
  // 格式化小數(shù)
  public static double subInt(double i) {
    String s = String.valueOf(i).substring(0, bytelimit + 2);// 獲取 小數(shù)點后5位
    String ss = String.valueOf(i).substring(bytelimit + 2, bytelimit + 3);// 獲取小數(shù)點第6位
    double dd = Double.parseDouble(s);// 轉(zhuǎn)化為小數(shù)點后保留5位的小數(shù)
    // 如果第6位的值大于等于5,根據(jù)四舍五入,將轉(zhuǎn)化后的小數(shù)加上0.00001
    if (ss.compareTo("5") >= 0) {
      dd = dd + 0.00001;
    }
    return dd;
  }
}

運行結(jié)果:

PS:這里再為大家推薦幾款計算工具供大家進(jìn)一步參考借鑒:

在線一元函數(shù)(方程)求解計算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科學(xué)計算器在線使用_高級計算器在線計算:
http://tools.jb51.net/jisuanqi/jsqkexue

在線計算器_標(biāo)準(zhǔn)計算器:
http://tools.jb51.net/jisuanqi/jsq

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Java?棧與隊列實戰(zhàn)真題訓(xùn)練

    Java?棧與隊列實戰(zhàn)真題訓(xùn)練

    在編寫程序的時候,對于棧與隊列的應(yīng)用需要熟練的掌握,這樣才能夠確保寫出來的代碼有質(zhì)量。本文小編就以幾個題目詳細(xì)說說Java中的棧與隊列,需要的朋友可以參考一下
    2022-04-04
  • Java 創(chuàng)建線程的兩個方法詳解及實例

    Java 創(chuàng)建線程的兩個方法詳解及實例

    這篇文章主要介紹了Java 創(chuàng)建線程的兩個方法詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java多線程編程之使用Synchronized塊同步變量

    java多線程編程之使用Synchronized塊同步變量

    我們可以通過synchronized塊來同步特定的靜態(tài)或非靜態(tài)方法。要想實現(xiàn)這種需求必須為這些特性的方法定義一個類變量,然后將這些方法的代碼用synchronized塊括起來,并將這個類變量作為參數(shù)傳入synchronized塊
    2014-01-01
  • Java中的觀察者模式實例講解

    Java中的觀察者模式實例講解

    這篇文章主要介紹了Java中的觀察者模式實例講解,本文先是講解了觀察者模式的概念,然后以實例講解觀察者模式的實現(xiàn),以及給出了UML圖,需要的朋友可以參考下
    2014-12-12
  • 海量數(shù)據(jù)去重排序bitmap(位圖法)在java中實現(xiàn)的兩種方法

    海量數(shù)據(jù)去重排序bitmap(位圖法)在java中實現(xiàn)的兩種方法

    今天小編就為大家分享一篇關(guān)于海量數(shù)據(jù)去重排序bitmap(位圖法)在java中實現(xiàn)的兩種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Idea中maven項目實現(xiàn)登錄驗證碼功能

    Idea中maven項目實現(xiàn)登錄驗證碼功能

    這篇文章主要介紹了Idea中maven項目實現(xiàn)登錄驗證碼功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Mybatis的動態(tài)拼接條件方式

    Mybatis的動態(tài)拼接條件方式

    這篇文章主要介紹了Mybatis的動態(tài)拼接條件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 解決struts2 攔截器修改request的parameters參數(shù)失敗的問題

    解決struts2 攔截器修改request的parameters參數(shù)失敗的問題

    這篇文章主要介紹了解決struts2 攔截器修改request的parameters參數(shù)失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 談?wù)凧ava中try-catch-finally中的return語句

    談?wù)凧ava中try-catch-finally中的return語句

    我們知道return語句用在某一個方法中,一是用于返回函數(shù)的執(zhí)行結(jié)果,二是用于返回值為void類型的函數(shù)中,僅僅是一個return語句(return ;),此時用于結(jié)束方法的執(zhí)行,也即此return后的語句將不會被執(zhí)行,當(dāng)然,這種情況下return語句后不能再有其它的語句了
    2016-01-01
  • java如何自定義注解

    java如何自定義注解

    這篇文章主要介紹了java如何自定義注解問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評論

固阳县| 长沙县| 普兰店市| 兰州市| 延川县| 银川市| 长白| 仲巴县| 陕西省| 商都县| 塘沽区| 玉溪市| 建宁县| 兰溪市| 福安市| 和静县| 开封市| 曲周县| 枝江市| 乌苏市| 日照市| 扎赉特旗| 太白县| 株洲县| 红桥区| 无极县| 称多县| 鹤峰县| 喜德县| 辽阳市| 云霄县| 从江县| 军事| 启东市| 深圳市| 三江| 新宁县| 潼南县| 西城区| 南皮县| 白城市|