Oracle中实现圆周率计算(一)


 今天两个同事用JAVA实现圆周率一百位小数的实现。一个同事问我要不要试试,由于很长时间没有写过JAVA代码,而且本身JAVA的水平就很差,于是打算用ORACLE实现。
  其实Oracle中使用现成的函数就可以直接到的圆周率,比如:

SQL> SELECT ACOS(-1) FROM DUAL;
  ACOS(-1)
  ----------
  3.14159265


  可以通过调整数值类型的参数来获取38位精度:

SQL> SET NUMW 40
  SQL> SELECT ACOS(-1) PI FROM DUAL;
  PI
  ----------------------------------------

3.1415926535897932384626433832795028842
 


  如果不能使用现成的函数,而要自己计算,则要麻烦一些。

  当时同事问我的时候,我告诉他一分种左右就可以搞定,而实际证明,写这个代码用了5分钟左右:

     SQL> CREATE OR REPLACE PROCEDURE P_PI wrapped
  2 a000000
  3 1
  4 abcd
  5 abcd
  6 abcd
  7 abcd
  8 abcd
  9 abcd
  10 abcd
  11 abcd
  12 abcd
  13 abcd
  14 abcd
  15 abcd
  16 abcd
  17 abcd
  18 abcd
  19 7
  20 ec 11f
  21 bLpzn0N21EJAQZmxUW0FNNv3TiEwgwDQ7UhqfC/WmGCua2Lf0zZFLKG/pZHGJ/bKzDYxl/z+
  22 qm17DFusHSThkSZkEuy6LmGKASmXQXlIcj5c2rC7LQDfmeLEhifcu+/Euy0ZqsYYpFeKtfeC
  23 Vamv1TmuhyHFqL1bdFkURszthPM58C+Jwz4juIdQ3pEBIhhdUWdwH2nhe8wAWXYtDklgqX3m
  24 d05w6NIDkQvcTtJx/uoF8gVIBzPG8V7EYd5VJ/6IIw24DU+CH20QJHWJwe4eKG3j3/I=
  25
  26 /


  过程已创建。

  这时10.2版本下WRAP后的过程,利用这个代码可以返回圆周率100位以内的任意位小数:

SQL> SET SERVEROUT ON
  SQL> EXEC P_PI
  3.1415926535


  PL/SQL 过程已成功完成。

SQL> EXEC P_PI(1)
  3.1


   PL/SQL 过程已成功完成。

 SQL> EXEC P_PI(5)
  3.14159


  PL/SQL 过程已成功完成。

SQL> EXEC P_PI(38)
  3.14159265358979323846264338327950288419


  PL/SQL 过程已成功完成。 

SQL> EXEC P_PI(100)
  3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706


  PL/SQL 过程已成功完成

本文作者:



相关阅读:
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
jQuery EasyUI API 中文文档 - Documentation 文档
IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
html 的 ContentType 小结
纯css 鼠标移上查看大图的效果
hr 样式实现1px直线
aspx实现的 jquery ui 的 flexgrid demo
JS实例:登陆失败后跳出框架打开
JSP中调用JavaBean零接触
PHP 全角转半角实现代码
SSAS : 外围应用配置器
PHP获取文件绝对路径的代码(上一级目录)
基于FreeBSD和Postfix的IGENUS Webmail邮件系统
sqlserver2005打造自动备份的维护计划图解教程
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 职场人为何这么累? 小学六年级作文550字:其实死也不是坏事 最新治安支队半年工作总结 慢下来,静观自己的内心 我为创卫出力 县委办公室副主任述职报告 超市员工个人工作总结 寒夜守候,只为唯一的你 冬天真好玩作文700字 手工制作----玩橡泥皮 伤心的雨作文200字 班主任工作要关注细节 老师,我心里的一盏明灯 白马涧冰雪节作文600字 新一年的新愿望作文600字 不算快乐 作文 感恩外婆 难忘的回忆作文800字 灯节中的大连 中学入团申请书600字范例 让我的思念与祝福 守护着你的睡眠 天使的声音(二)作文700字 初中初一作文750字:历经“波折”的验血 妈妈教我做家务 盛夏的田野_关于描写夏天田野景色的小学生作文350字 关于全面提高全民身体健康与健康水平的调研报告_调研报告 20年后我回到家乡作文600字 初中初二作文800字:不和谐的音符 莺语乱钱拍岸 在职职工入党申请书 快乐的植物作文400字 六一儿童节文艺汇演主持词开场白 悬疑故事:浪漫空劫 隔着海风与你深情相拥 教学副校长个人工作总结 初一中秋作文 我县对第二批先进性教育活动单位的调研报告 儿童阅读工作总结 星夜想 高中高三作文500字:读《海底总动员》有感 小学四年级作文800字:嫦娥“回家” 大学生暑期支教实践团队管理规章制度 伤感爱情语录:挥别时,请一定要微笑 南唐 分享很多的微博说说段子 大学生村官五中全会心得体会范例 情殇(五) 折翼天使Angel作文100字 花开花落我一样会珍惜作文1500字 “优良学习标兵”事迹材料

Copyright © 2016 phpStudy |