Estava fazendo alguns exercícios básicos em Java e um deles pedia: Show
Aí eu fiz tudo direito, só que deu um problema, quando eu digito a 1 letra: Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.lang.Double.parseDouble(Double.java:538) at Apresentacao.TelaRaiz.jtNumeroKeyPressed(TelaRaiz.java:67) at Apresentacao.TelaRaiz.access$000(TelaRaiz.java:12) at Apresentacao.TelaRaiz$1.keyPressed(TelaRaiz.java:38) at java.awt.Component.processKeyEvent(Component.java:6491) at javax.swing.JComponent.processKeyEvent(JComponent.java:2832) at java.awt.Component.processEvent(Component.java:6310) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771) at java.awt.Component.dispatchEventImpl(Component.java:4760) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Ele executa tudo e mesmo com erro ele calcula a raiz, mas somente quando eu digito a segunda letra, ou quando eu digito a primeira letra e aperto ENTER. Porque está dando esse erro? Eu queria que quando digitasse, ele capturasse e mostrasse o resultado. Trecho de Erro: private void jtNumeroKeyPressed(java.awt.event.KeyEvent evt) { int i = (int)(Double.parseDouble(jtNumero.getText())); jlResultado.setText("A raiz quadrada de: "+ i + " é: " + Math.sqrt(i)); }import java.util.Scanner; import java.lang.Math; public class RaizQuadrada { public static void main(String[] args) { Scanner ler = new Scanner(System.in); int numero; double raiz; numero = ler.nextInt(); raiz = Math.sqrt(numero); System.out.printf("%.4f", raiz); } }
Swatee Chand
/div> 12 de Setembro, 2019 – 5 min ler /div> Uma das mais populares perguntas mais frequentes sobre a entrevista Java é, “Dado um inteiro x, escrever um programa java para encontrar a raiz quadrada do mesmo”. Há muitas maneiras de resolver este problema. Neste artigo, vamos verificar diferentes maneiras de encontrar a raiz quadrada e quadrada em Java.
2. Como ajustar um número em Java
3. Como encontrar a raiz quadrada de um número em Java
Antes de discutir o código da raiz quadrada em Java, vamos entender primeiro o termo raiz quadrada. O quadrado de um número é esse número vezes. Noutros termos, quando multiplicamos um número inteiro por si só, chamamos ao produto o quadrado do número. Matematicamente, o quadrado de um número é dado como, Quadrado de n = n*n Por exemplo, o quadrado do número 4 é 4*4 = 16 A raiz quadrada é exactamente o oposto do quadrado. A raiz quadrada de um número, n, é o número que dá n quando multiplicado por si mesmo. Matematicamente, a raiz quadrada de um número é dada como, Raíz quadrada de n = √ n Agora que se saiba o que são raiz quadrada e raiz quadrada de um número, vejamos diferentes formas de os calcular em Java. Como se quadratura um número em Java?Pode ajustar um número em Java de duas maneiras diferentes:
Método 1: ajustar um número multiplicando-o por si mesmoHá um Programa Java para ajustar um número multiplicando-o por si mesmo. package MyPackage;import java.util.Scanner;public class Square1 {public static void main(String args) {Double num;Scanner sc= new Scanner(System.in);System.out.print("Enter a number: ");num=sc.nextDouble();Double square = num*num;System.out.println("Square of "+ num + " is: "+ square);}} Saída Enter a number: 10 Square of 10.0 is: 100.0Método 2: Quadrar um número com o método Math.powHá um Programa Java para chamar o método Math.pow para quadratar um número. package MyPackage;import java.util.Scanner;import java.lang.Math;public class Square2 {public static void main(String args) {Double num;Scanner sc= new Scanner(System.in);System.out.print("Enter a number: ");num = sc.nextDouble();Double square = Math.pow(num, 2);System.out.println("Square of "+ num + " is: "+ square);}} Output Enter a number: 22Square of 22.0 is: 484.0 Agora vamos verificar como calcular a raiz quadrada de um número em Java. Como encontrar a raiz quadrada de um número em JavaExistem múltiplas formas de encontrar a raiz quadrada de um dado número em Java. Vamos explorar algumas dessas. Método 1: Programa Java para Encontrar a raiz quadrada de um número usando java.lang.Math.método sqrt()
2. Devolver: Este método devolve o valor da raiz quadrada do argumento que lhe foi transmitido.
Código package MyPackage;public class SquareRoot2 {public static void main(String args){double a = 100;System.out.println(Math.sqrt(a));// Input positive value, Output square root of xdouble b = -81.00;System.out.println(Math.sqrt(b));// Input negative value, Output NaNdouble c = 0.0/0;// Input NaN, Output NaNSystem.out.println(Math.sqrt(c));double d = 1.0/0;// Input positive infinity, Output positive infinitySystem.out.println(Math.sqrt(d));double e = 0.0;// Input positive Zero, Output positive zeroSystem.out.println(Math.sqrt(e));}} Output 10.0NaNNaNInfinity0.0 Método 2: Programa Java para encontrar a raiz quadrada de um número usando java.método lang.Math.pow()Podemos usar a lógica √number = number½ para encontrar a raiz quadrada de um número. c>Código package MyPackage;import java.util.Scanner;public class SquareRoot1 {public static void main(String args){Double num;Scanner sc= new Scanner(System.in);System.out.print("Enter a number: ");num = sc.nextDouble();Double squareroot = Math.pow(num, 0.5);System.out.println("The Square of a Given Number " + num + " = " + squareroot);}} Eliminar Enter a number: 81The Square of a Given Number 81.0 = 9.0 Método 3: Programa Java para Encontrar a raiz quadrada de um Número sem utilizar qualquer método incorporadoAqui está a lógica que estamos a utilizar:
O primeiro número sqrt deve ser o número de entrada / 2. Aqui está um Programa Java implementando a lógica acima. c>Código package MyPackage;public class SquareRoot{public static double square(double number){double t;double squareroot = number / 2;do {t = squareroot;squareroot = (t + (number / t)) / 2;}while ((t - squareroot) != 0);return squareroot;}public static void main(String args){double number = 16;double root;root = square(number);System.out.println("Number : "+number);System.out.println("Square Root : "+root);}} Output Number : 121.0Square Root : 11.0 Isto leva-nos ao fim deste artigo. Confirmeça-se a praticar o máximo possível e reverta a sua experiência. Se desejar consultar mais artigos sobre as tecnologias de maior tendência do mercado como Inteligência Artificial, DevOps, Ethical Hacking, então pode consultar o site oficial de Edureka. Procure outros artigos desta série que explicarão os vários outros aspectos de Java.
|