你在说什么是使用Pi作为一个概念,而不是一个数字。我会做这样的事情:
class Fraction {
public int num;
public int den;
public Fraction(int n,int d) {
num=n;
den=d;
}
public Fraction() {
num=1;
den=1;
public double decValue() {
return ((double)num)/((double)den);
}
}
yadda,yadda ....
public static Fraction someMethod(double decVal) {
Fraction f=new Fraction(1,1);
double howclose=0.0000001; //tiny amount of error allowed
while(abs((f.decValue()*Math.PI)-decVal)>howclose) {
if(f.decValue()*Math.PI>decVal) {
f.den++;
}
else {
f.num++;
}
}
return f;
}
基本上,在获取分数越来越接近预期的应答(decVal)工作。该部分将在形式:
num*PI
------
den
基本上,乘这是由皮结果的分数,应该是非常接近decVal。
为什么不输出180度为“180度” – 2011-02-09 20:48:58
这只是对特定值有任何用处;您希望它显示哪些内容179度? – 2011-02-09 20:50:43
我正在尝试计算弧度度量的精确值,而不是度数。虽然我想只是包含一些语句来检测这个值是否存在确切的分数值...... – user610367 2011-02-09 20:52:19