double 和float精度问题
牛顿迭代算题的时候出现这样一幕
public int mySqrt(int x) {
int n = x;
double a = x;
while(a * a-n>0.1){
a -= (a * a-n)/(a * 2);
}
return (int)a;
}
其中double可以float有时候会差一个数
回答
double比float 的精度高,一般小数都用double类型的变量,如果要求精度更高的,需要用decimal 类型的变量
牛顿迭代算题的时候出现这样一幕
public int mySqrt(int x) {
int n = x;
double a = x;
while(a * a-n>0.1){
a -= (a * a-n)/(a * 2);
}
return (int)a;
}
其中double可以float有时候会差一个数
double比float 的精度高,一般小数都用double类型的变量,如果要求精度更高的,需要用decimal 类型的变量