圆周率计算 纠错

来源:百度知道 编辑:UC知道 时间:2024/05/04 11:06:49
/*
用割圆法算圆周率:用正多边形切割圆 边数越多越接近圆周
在草稿本上得出pi与边数有如下关系
pi=sin(360/a)*a a为边数
*/
import java.text.*;
import java.lang.*;
public class yzl{
public static void main(String[] args)
{double pi;
for(int a=3;;a++)
pi=Math.sin(360/a)*a;
System.out.println("yzl is:"+pi);
}}
/*显示错误System.out.println("yzl is:"+pi);
无法访问 为什么*/

^^^^^你再仔细看看 再想想!!!

for (int a = 3;a<=6; a++) {
pi = Math.sin(360 / a) * a;
}

没有循环条件的死循环,能访问到输出语句么?

Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。这个问题相当严重,如果你有9.999999999999元,你的计算机是不会认为你可以购买10元的商品的。
在有的编程语言中提供了专门的货币类型来处理这种情况,但是Java没有。
1:作为程序员.千万要记住不能写死循环的准则.(for(int a=3;;a++))是错误的...
2:计算机的数学不能直接使用跟生活数学.
java.math.BigDecimal
由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入。

你这人是个死循环,