El significat anglès de truncar és a retallar o podar , o tallar alguna cosa i es diu el procés de retallar truncament . En el camp de la informàtica, el terme s'utilitza sovint en referència a tipus de dades o variables (com ara Corda , nombres de coma flotant, etc.). És una manera d'aproximació. Parlem què és el truncament a Java i com podem truncar un flotant o nombre de tipus doble a través de a Programa Java .
Truncament
En Java programació , truncament significa retallar alguns dígits de a flotar o tipus doble nombre o alguns caràcters de a corda des de la dreta. També podem truncar completament la part decimal que la converteix en un enter . Recordeu que després del truncament, el nombre no serà arrodonit al seu valor més proper. Per tant, el truncament és una forma d'aproximació .
model tcp ip
Normalment s'utilitza en informàtica (especialment en bases de dades i programació) quan es fa la divisió amb nombres enters i els resultats han de ser un nombre enter.
Nota: el truncament i l'arrodoniment són dos conceptes completament diferents. No és el mateix que Math.floor() , Math.ceil() , i Math.round() funció de la Classe de matemàtiques .
Ara hem entès clarament el concepte de truncament. Vegem alguns enfocaments per truncar nombres flotants o de tipus doble i cadena també.
Exemple
Suposem, un nombre de tipus doble num=19,87874548973101 és donat. Cal que només hi hagi 3 dígits després del punt decimal. En aquests casos, sol·licitem truncament . Després de truncar la resta de dígits, obtenim 19.878 .
Si trunquem tots els dígits que vénen després del punt decimal, es converteix en 19 . Si el nombre s'ha arrodonit al nombre enter més proper, es converteix en 20 .
Ara hem entès clarament el truncament. Vegem alguns enfocaments per truncar nombres flotants o de tipus doble i cadena també.
Enfocaments
Hi ha dos enfocaments per truncar un nombre:
- Ús de la lògica matemàtica
- Utilitzant String Matching
Ús de la lògica matemàtica
Podem truncar el número seguint els passos següents:
- Mou el decimal del nombre especificat (n) a la posició decimal donada (dp) multiplicant el nombre 10dp.
- Determineu el valor mínim del valor resultant (que obtenim del pas 1).
- Dividiu el valor del sòl per 10dp.
El valor que obtenim del pas 3, és un valor truncat.
Si representem els passos anteriors en termes de matemàtiques, obtenim:
- n = n*pow (10, lloc decimal);
- n = pis (n);
- n = n / pow (10, decimal);
Exemple: trunqueu 1,231 fins a 2 decimals.
n=1,231*pow(10,2)
n=1,231*100 = 123.100
n=pis (123.100) = 123
n=123/pow(10,2)
n=123/100 = 1.23
Implementem la lògica anterior en un 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); } }
Sortida:
com deseleccioneu al gimp
The number before truncation is: 19.87874548973101 The number after truncation is: 19.87874
Utilitzant String Matching
- Converteix el tipus doble o flotant en Corda
- Troba el decimal punt a la corda.
- Incrementa la variable ( comptar ) fins a obtenir el punt decimal.
- Emmagatzemeu la nova corda i passeu-la a parseDouble() mètode. El mètode retorna el valor doble representat per la cadena.
El valor que obtenim del pas 4, és un valor truncat.
Implementem els passos anteriors en un 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); } }
Sortida:
The number before truncation is: 556.9871233986399 The number after truncation is: 556.987
També podem retallar una cadena en Java . Per a aquesta classe Java String proporciona el mètode trim().