Sensul englezesc al trunchia este să tunde sau prună uscată , sau a tăia ceva și procesul de tundere se numește trunchiere . În domeniul informaticii, termenul este adesea folosit cu referire la tipuri de date sau variabile (cum ar fi Şir , numere în virgulă mobilă etc.). Este o modalitate de aproximare. Sa discutam ce este trunchierea în Java și cum putem trunchia o plutitoare sau număr de tip dublu prin a program Java .
Trunchiere
În Java programare , trunchiere înseamnă a tăia unele cifre ale a pluti sau tip dublu număr sau unele caractere ale lui a şir din dreapta. De asemenea, putem trunchia complet porțiunea zecimală care o face un întreg . Amintiți-vă că după trunchiere, numărul nu va fi rotunjit la cea mai apropiată valoare. Prin urmare, trunchierea este o modalitate de aproximare .
Este de obicei folosit în calcul (în special în baze de date și programare) atunci când împărțirea se face cu numere întregi și rezultatele trebuie să fie un număr întreg.
Notă: trunchierea și rotunjirea sunt două concepte complet diferite. Nu este același lucru cu Math.floor() , Math.ceil() , și Math.round() funcția de Ora de matematică .
Acum am înțeles clar conceptul de trunchiere. Să vedem câteva abordări pentru a trunchia numerele și șirurile flotante sau de tip dublu.
marca html
Exemplu
Să presupunem, un număr de tip dublu num=19,87874548973101 este dată. Este necesar ca după virgulă zecimală să existe doar 3 cifre. În astfel de cazuri, aplicăm trunchiere . După trunchierea celorlalte cifre, obținem 19.878 .
Dacă trunchiem toate cifrele care vin după virgulă zecimală, aceasta devine 19 . Dacă numărul a fost rotunjit la cel mai apropiat număr întreg, acesta devine douăzeci .
Acum am înțeles clar trunchierea. Să vedem câteva abordări pentru a trunchia numerele și șirurile flotante sau de tip dublu.
Abordari
Există două abordări pentru a trunchia un număr:
- Utilizarea logicii matematice
- Utilizarea potrivirii șirurilor
Utilizarea logicii matematice
Putem trunchia numărul utilizând următorii pași:
- Mutați zecimala numărului specificat (n) la zecimala dată (dp) prin înmulțirea numărului 10dp.
- Determinați valoarea de etaj a valorii rezultante (pe care o obținem de la pasul 1).
- Împărțiți valoarea podelei la 10dp.
Valoarea pe care o obținem de la pasul 3, este o valoare trunchiată.
lista de sortare java
Dacă reprezentăm pașii de mai sus în termeni de matematică, obținem:
- n = n*pow(10,decimalplace);
- n = etaj(n);
- n = n / pow(10,decimalplace);
Exemplu: trunchiați 1,231 cu până la 2 zecimale.
n=1,231*pow(10,2)
n=1,231*100 = 123.100
n=etaj (123.100) = 123
n=123/pow(10,2)
n=123/100 = 1.23
Să implementăm logica de mai sus într-un program 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); } }
Ieșire:
The number before truncation is: 19.87874548973101 The number after truncation is: 19.87874
Utilizarea potrivirii șirurilor
- Convertiți tipul dublu sau float în Şir
- Găsi zecimal punct în șir.
- Creșteți variabila ( numara ) până când obținem virgulă zecimală.
- Păstrați noul șir și treceți-l la parseDouble() metodă. Metoda returnează valoarea dublă reprezentată de șir.
Valoarea pe care o obținem de la pasul 4, este o valoare trunchiată.
Să implementăm pașii de mai sus într-un program Java.
TruncationExample2.java
profunzimea algoritmului prima căutare
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); } }
Ieșire:
The number before truncation is: 556.9871233986399 The number after truncation is: 556.987
Putem de asemenea tăiați un șir în Java . Pentru această clasă Java String oferă metoda trim().