Az angol jelentése csonka az, hogy trim vagy aszalt szilva , vagy vágott valamit és a vágás folyamatát úgy hívják csonkítás . A számítástechnika területén a kifejezést gyakran használják adattípusokra vagy változókra (pl Húr , lebegőpontos számok stb.). Ez a közelítés módja. Beszéljük meg mi a csonkítás a Java-ban és hogyan csonkolhatunk le egy lebegőt vagy kettős típusú szám a-n keresztül Java program .
Csonkolás
Ban ben Jáva programozás , csonkítás az a néhány számjegyének levágását jelenti úszó vagy kettős típusú szám vagy néhány karakter a húr jobbról. A tizedes részt teljesen le is csonkolhatjuk, így an egész szám . Ne feledje, hogy a csonkítás után a szám nem lesz kerekítve a legközelebbi értékre. Ennélfogva, a csonkítás a közelítés egyik módja .
Általában a számítástechnikában használják (különösen az adatbázisokban és a programozásban), amikor az osztás egész számokkal történik, és az eredménynek egész számnak kell lennie.
Megjegyzés: A csonkítás és a kerekítés két teljesen különböző fogalom. Ez nem ugyanaz, mint a Math.floor() , Math.ceil() , és Math.round() funkciója Matekóra .
Most már világosan megértettük a csonkítás fogalmát. Lássunk néhány megközelítést a lebegő vagy dupla típusú számok és karakterláncok csonkolására.
Példa
Tegyük fel, hogy egy kettős típusú szám szám=19,87874548973101 adott. A tizedesvessző után csak 3 számjegynek kell lennie. Ilyen esetekben jelentkezünk csonkítás . A többi számjegy csonkolása után azt kapjuk 19,878 .
Ha az összes tizedesvessző utáni számjegyet levágjuk, akkor ez lesz 19 . Ha a számot a legközelebbi egész számra kerekítették, akkor ez lesz húsz .
Most már egyértelműen megértettük a csonkítást. Lássunk néhány megközelítést a lebegő vagy dupla típusú számok és karakterláncok csonkolására.
Megközelít
Kétféle megközelítés létezik a számok csonkolására:
- Matematikai logika használata
- String Matching használata
Matematikai logika használata
A számot a következő lépésekkel csonkolhatjuk:
- Mozgassa a megadott szám (n) tizedesét a megadott tizedesjegyre (dp) a 10-es szám szorzásávaldp.
- Határozzuk meg az eredő érték minimális értékét (amelyet az 1. lépésből kapunk).
- Ossza el a minimális értéket 10-zeldp.
A 3. lépésből kapott érték egy csonka érték.
Ha a fenti lépéseket matematikailag ábrázoljuk, a következőket kapjuk:
- n = n*pow(10,tizedes hely);
- n = padló(n);
- n = n / pow(10,tizedes hely);
Példa: 1,231 csonkolása 2 tizedesjegyig.
n=1,231*pow(10,2)
n=1,231*100= 123 100
n = padló (123,100) = 123
n=123/pow(10,2)
n = 123/100 = 1.23
Valósítsuk meg a fenti logikát egy Java programban.
CsonkolásPélda1.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); } }
Kimenet:
The number before truncation is: 19.87874548973101 The number after truncation is: 19.87874
String Matching használata
- Alakítsa át a dupla vagy lebegő típust erre Húr
- Találd meg decimális pont a karakterláncban.
- Növelje a változót ( számol ), amíg el nem kapjuk a tizedesvesszőt.
- Tárolja el az új karakterláncot, és adja át a parseDouble() módszer. A metódus a karakterlánc által képviselt dupla értéket adja vissza.
A 4. lépésből kapott érték egy csonka érték.
Valósítsuk meg a fenti lépéseket egy Java programban.
CsonkolásPélda2.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); } }
Kimenet:
The number before truncation is: 556.9871233986399 The number after truncation is: 556.987
Mi is tudunk vágjon le egy karakterláncot Java nyelven . Ehhez a Java String osztály biztosítja a trim() metódust.