O significado inglês de truncar é para aparar ou ameixa seca , ou corte algo e o processo de corte é chamado truncamento . No campo da ciência da computação, o termo é frequentemente usado em referência a tipos de dados ou variáveis (como Corda , números de ponto flutuante, etc.). É uma forma de aproximação. Vamos discutir o que é truncamento em Java e como podemos truncar um flutuante ou número de tipo duplo através de um Programa Java .
Truncamento
Em Java programação , truncamento significa cortar alguns dígitos de um flutuador ou tipo duplo número ou alguns caracteres de um corda da direita. Também podemos truncar completamente a parte decimal, o que a torna um inteiro . Lembre-se que após o truncamento, o número não será arredondado para o valor mais próximo. Por isso, truncamento é uma forma de aproximação .
Geralmente é usado em computação (especialmente em banco de dados e programação) quando a divisão é feita com números inteiros e o resultado deve ser um número inteiro.
Nota: Truncamento e arredondamento são dois conceitos completamente diferentes. Não é o mesmo que Math.floor() , Math.ceil() , e Math.round() função do Aula de matemática .
Agora entendemos claramente o conceito de truncamento. Vamos ver algumas abordagens para truncar números flutuantes ou de tipo duplo e strings também.
Exemplo
Suponha que um número de tipo duplo num=19.87874548973101 é dada. É necessário que haja apenas 3 dígitos após a vírgula. Nesses casos, aplicamos truncamento . Depois de truncar os dígitos restantes, obtemos 19.878 .
Se truncarmos todos os dígitos após a vírgula, torna-se 19 . Se o número for arredondado para o número inteiro mais próximo, torna-se vinte .
Agora entendemos claramente o truncamento. Vamos ver algumas abordagens para truncar números flutuantes ou de tipo duplo e strings também.
while e faça loop while em java
Abordagens
Existem duas abordagens para truncar um número:
- Usando Lógica Matemática
- Usando correspondência de strings
Usando Lógica Matemática
Podemos truncar o número usando as seguintes etapas:
- Mova o decimal do número especificado (n) para a casa decimal fornecida (dp) multiplicando o número 10DP.
- Determine o valor mínimo do valor resultante (que obtemos na etapa 1).
- Divida o valor mínimo por 10DP.
O valor que obtemos na etapa 3 é um valor truncado.
Se representarmos as etapas acima em termos matemáticos, obteremos:
tente pegar o bloco em java
- n = n*pow(10,casa decimal);
- n = andar(n);
- n = n / pow(10,casa decimal);
Exemplo: Truncar 1.231 até 2 casas decimais.
n=1,231*pow(10,2)
n=1,231*100 = 123.100
n=piso(123.100) = 123
n=123/pow(10,2)
n = 123/100 = 1.23
Vamos implementar a lógica acima em um programa Java.
TruncationExample1.java
import java.io.*; public class TrunctionExample1 { //driver code public static void main(String args[]) { //the number to truncate double num = 19.87874548973101; //number of digits to take after decimal int digits = 5; System.out.println('The number before truncation is: '+num); //calling user-defined method that truncates a number truncateNumber(num, digits); } //user-defined method to truncate a number static void truncateNumber(double n, int decimalplace) { //moves the decimal to the right n = n* Math.pow(10, decimalplace); //determines the floor value n = Math.floor(n); //dividing the floor value by 10 to the power decimalplace n = n / Math.pow(10, decimalplace); //prints the number after truncation System.out.println('The number after truncation is: '+n); } }
Saída:
The number before truncation is: 19.87874548973101 The number after truncation is: 19.87874
Usando correspondência de strings
- Converta o tipo double ou float em Corda
- Encontre o decimal ponto na string.
- Incrementar a variável ( contar ) até obtermos a vírgula decimal.
- Armazene a nova string e passe-a para o analisarDuplo() método. O método retorna o valor duplo representado pela string.
O valor que obtemos na etapa 4 é um valor truncado.
Vamos implementar as etapas acima em um programa Java.
TruncationExample2.java
import java.io.*; public class TruncationExample2 { public static void main(String args[]) { //the number to truncate double num = 556.9871233986399; //number of digits to take after decimal int decimalplaces = 3; //converting a double type value to String type String strnum = '' + num; //stores the truncated string String strval = ''; int count = -1; //loop iterates over the string until the condition becomes false for (int i = 0; i decimalplaces) { break; } //if the above condition returns false else block is executed else //compares each character of the strnum with decimal //if returns true variable by 1 if (strnum.charAt(i) == '.') { count = 1; } else if (count >= 1) { //increments the count variable by 1 ++count; } //converting the number into string strval = strval + strnum.charAt(i); } System.out.println('The number before truncation is: '+num); //returns double value represented by the string argument double truncatedvalue = Double.parseDouble(strval); System.out.println('The number after truncation is: '+truncatedvalue); } }
Saída:
The number before truncation is: 556.9871233986399 The number after truncation is: 556.987
Nós também podemos cortar uma string em Java . Para esta classe Java String fornece o método trim().