在特定的小数位后停止循环
Stop a loop from going on after a specific number of decimal places
我有一个程序可以在不使用 Math.sqrt 方法的情况下计算数字的平方根。我做了这个但是.....如果数字不是一个完美的正方形,循环将永远(正确地)继续下去,我如何让循环在基本 java 中的小数位后停止 :)
谢谢!
import java.util.Scanner;
public class SquareRootMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a number to square root: ");
double Number = sc.nextInt();
double Answer = FindSquareRoot(Number);
System.out.println(Answer);
}
public static double FindSquareRoot(double NumberToRoot)
{
double Guess = NumberToRoot;
double GuessAmmount = NumberToRoot;
do
{ GuessAmmount = GuessAmmount/2;
if (Guess*Guess >NumberToRoot);
{ Guess = Guess - GuessAmmount; }
if (Guess*Guess <NumberToRoot)
{Guess = Guess + GuessAmmount; }
}
while (Guess*Guess != NumberToRoot);
return Guess;
}
}
如何设置数字的某种精度?
public static double findSquareRoot(double numberToRoot) {
double guess = numberToRoot;
double guessAmount = numberToRoot;
do {
guessAmount = guessAmount / 2;
if (guess * guess > numberToRoot) {
guess = guess - guessAmount;
}
if (guess * guess < numberToRoot) {
guess = guess + guessAmount;
}
} while (Math.abs((guess * guess) - numberToRoot) > 0.001);
return guess;
}
诀窍在while
行。
我有一个程序可以在不使用 Math.sqrt 方法的情况下计算数字的平方根。我做了这个但是.....如果数字不是一个完美的正方形,循环将永远(正确地)继续下去,我如何让循环在基本 java 中的小数位后停止 :) 谢谢!
import java.util.Scanner;
public class SquareRootMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a number to square root: ");
double Number = sc.nextInt();
double Answer = FindSquareRoot(Number);
System.out.println(Answer);
}
public static double FindSquareRoot(double NumberToRoot)
{
double Guess = NumberToRoot;
double GuessAmmount = NumberToRoot;
do
{ GuessAmmount = GuessAmmount/2;
if (Guess*Guess >NumberToRoot);
{ Guess = Guess - GuessAmmount; }
if (Guess*Guess <NumberToRoot)
{Guess = Guess + GuessAmmount; }
}
while (Guess*Guess != NumberToRoot);
return Guess;
}
}
如何设置数字的某种精度?
public static double findSquareRoot(double numberToRoot) {
double guess = numberToRoot;
double guessAmount = numberToRoot;
do {
guessAmount = guessAmount / 2;
if (guess * guess > numberToRoot) {
guess = guess - guessAmount;
}
if (guess * guess < numberToRoot) {
guess = guess + guessAmount;
}
} while (Math.abs((guess * guess) - numberToRoot) > 0.001);
return guess;
}
诀窍在while
行。