ໃນບົດເຝິກຫັດນີ້, ພວກເຮົາຈະຮູ້ຈັກວິທີປ່ຽນສະຕຣິງ Java ເປັນປະເພດຂໍ້ມູນສອງເທົ່າ:

ພວກເຮົາຈະຮຽນຮູ້ທີ່ຈະໃຊ້ວິທີຕໍ່ໄປນີ້ເພື່ອປ່ຽນສະຕຣິງເປັນສອງເທົ່າ. ຄ່າໃນ Java:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • new Double(String s)

ວິທີການແປງ Java String ເປັນສອງເທົ່າ

ມີສະຖານະການບາງຢ່າງທີ່, ໃນໂຄງການ Java ຂອງພວກເຮົາພວກເຮົາຕ້ອງປະຕິບັດການຄິດໄລ່ບາງປະເພດກ່ຽວກັບຄ່າຕົວເລກເຊັ່ນ: ການຄິດໄລ່ໃບບິນ, ການຄິດໄລ່ດອກເບ້ຍຂອງຈໍານວນເງິນຝາກ, ແລະອື່ນໆ. ແຕ່ການປ້ອນຂໍ້ມູນສໍາລັບໂຄງການນີ້ສາມາດໃຊ້ໄດ້. ໃນຮູບແບບຂໍ້ຄວາມເຊັ່ນ ປະເພດຂໍ້ມູນ Java String .

ຕົວຢ່າງ, ສໍາລັບການຄິດໄລ່ໃບເກັບເງິນຊື້ເຄື່ອງ – ລາຄາສິນຄ້າ ແລະຈໍານວນຫນ່ວຍທີ່ຊື້ມາເປັນການປ້ອນຂໍ້ມູນ. ຈາກພາກສະຫນາມຂໍ້ຄວາມຂອງຫນ້າເວັບຫຼືພື້ນທີ່ຂໍ້ຄວາມຂອງຫນ້າເວັບໃນຮູບແບບຂໍ້ຄວາມເຊັ່ນ Java String ປະເພດຂໍ້ມູນ. ໃນສະຖານະການດັ່ງກ່າວ, ທໍາອິດພວກເຮົາຕ້ອງປ່ຽນ String ນີ້ເພື່ອດຶງຕົວເລກໃນ ປະເພດຂໍ້ມູນເບື້ອງຕົ້ນຂອງ Java ສອງ .

ໃຫ້ພວກເຮົາເບິ່ງວິທີການຕ່າງໆໃນລາຍລະອຽດເທື່ອລະອັນ.

#1) Double.parseDouble() Method

parseDouble() method ແມ່ນສະໜອງໃຫ້ໂດຍ class Double. Double class ເອີ້ນວ່າ Wrapper class ຍ້ອນວ່າມັນຫໍ່ຄ່າຂອງປະເພດ primitive double ໃນ object.

ໃຫ້ເບິ່ງວິທີການລາຍເຊັນ.ຂ້າງລຸ່ມ:

public static double parseDouble(String str) throws NumberFormatException

ນີ້ແມ່ນວິທີການຄົງທີ່ໃນຄລາສ Double ເຊິ່ງສົ່ງຄືນປະເພດຂໍ້ມູນຄູ່ທີ່ສະແດງໂດຍ String ທີ່ລະບຸໄວ້.

ຢູ່ບ່ອນນີ້, ພາຣາມິເຕີ 'str' ເປັນ String ທີ່ມີການເປັນຕົວແທນຄ່າສອງເທົ່າທີ່ຈະວິເຄາະ ແລະສົ່ງຄ່າສອງເທົ່າທີ່ສະແດງໂດຍອາກິວເມັນ.

ນີ້ method ຖິ້ມຂໍ້ຍົກເວັ້ນ NumberFormatException ເມື່ອ String ບໍ່ມີສອງຕົວແປ.

ຕົວຢ່າງ, ໃຫ້ພວກເຮົາພິຈາລະນາສະຖານະການເມື່ອພວກເຮົາຕ້ອງການຄິດໄລ່ລາຄາຫຼັງຈາກໄດ້ຮັບ. ສ່ວນຫຼຸດລາຄາຕົ້ນສະບັບຂອງລາຍການ.

ສຳລັບອັນນີ້, ຄ່າທີ່ປ້ອນເຂົ້າເຊັ່ນລາຄາຕົ້ນສະບັບຂອງລາຍການ ແລະສ່ວນຫຼຸດແມ່ນມາຈາກລະບົບການຮຽກເກັບເງິນຂອງເຈົ້າເປັນຂໍ້ຄວາມ ແລະພວກເຮົາຕ້ອງການດຳເນີນການເລກເລກໃນຄ່າເຫຼົ່ານີ້. ເພື່ອຄຳນວນລາຄາໃໝ່ຫຼັງຈາກຫັກສ່ວນຫຼຸດຈາກລາຄາເດີມແລ້ວ.

ລອງມາເບິ່ງວິທີໃຊ້ວິທີ Double.parseDouble() ເພື່ອແຍກຄ່າ String ເປັນສອງເທົ່າໃນລະຫັດຕົວຢ່າງຕໍ່ໄປນີ້:

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using Double.parseDouble() method * * @author * */ public class StringToDoubleDemo1 { public static void main(String[] args) { // Assign "500.00" to String variable originalPriceStr String originalPriceStr = "50.00D"; // Assign "30" to String variable originalPriceStr String discountStr = "+30.0005d"; System.out.println("originalPriceStr :"+originalPriceStr); System.out.println("discountStr :"+discountStr); // Pass originalPriceStr i.e. String “50.00D” as a parameter to parseDouble() // to convert string 'originalPriceStr' value to double // and assign it to double variable originalPrice double originalPrice = Double.parseDouble(originalPriceStr); // Pass discountStr i.e. String “30.005d” as a parameter to parseDouble() // to convert string 'discountStr' value to double // and assign it to double variable discount double discount = Double.parseDouble(discountStr); System.out.println("Welcome, our original price is : $"+originalPrice+""); System.out.println("We are offering discount :"+discount+"%"); //Calculate new price after discount double newPrice = originalPrice - ((originalPrice*discount)/100); //Print new price after getting discount on the console System.out.println("Enjoy new attractive price after discount: $"+newPrice+""); } } 

ນີ້ແມ່ນຜົນອອກມາຂອງໂປຣແກຣມ:

originalPriceStr :50.00D

discountStr :+30.0005d

ຍິນດີຕ້ອນຮັບ, ລາຄາເດີມຂອງພວກເຮົາ ແມ່ນ : $50.0

ພວກເຮົາໃຫ້ສ່ວນຫຼຸດ :30.0005%

ເພີດເພີນໄປກັບລາຄາທີ່ໜ້າສົນໃຈໃໝ່ຫຼັງການຫຼຸດລາຄາ : $34.99975

ຢູ່ບ່ອນນີ້, String ແມ່ນ “50.00D” ເຊິ່ງ D ຊີ້ບອກ string ເປັນ ຄ່າສອງເທົ່າ.

String originalPriceStr = "50.00D";

ລາຄາຕົ້ນສະບັບນີ້ຄື “50.00D” ແມ່ນຜ່ານເປັນພາຣາມິເຕີໄປເປັນວິທີ parseDouble() ແລະຄ່າຖືກມອບໝາຍໃຫ້ເປັນ double variable originalPrice.

double originalPrice = Double.parseDouble(originalPriceStr);

parseDouble() method ປ່ຽນຄ່າ String ເປັນສອງເທົ່າ ແລະເອົາ “+” ຫຼື “-“ ແລະ 'D',' d'.

ເພາະສະນັ້ນ, ເມື່ອພວກເຮົາພິມລາຄາຕົ້ນສະບັບໃນ console:

System.out.println("Welcome, our original price is : $"+originalPrice+"");

ຜົນໄດ້ຮັບຕໍ່ໄປນີ້ຈະສະແດງຢູ່ໃນ console:

ຍິນດີຕ້ອນຮັບ, ລາຄາເດີມຂອງພວກເຮົາແມ່ນ : $50.0

ເຊັ່ນດຽວກັນ, ສໍາລັບ String discountStr = “+30.0005d”; String “+30.0005d” ສາມາດຖືກປ່ຽນເປັນສອງເທົ່າໂດຍໃຊ້ວິທີ parseDouble() ເປັນ:

double discount = Double.parseDouble(discountStr);

ເພາະສະນັ້ນ, ເມື່ອພວກເຮົາພິມສ່ວນຫຼຸດໃນຄອນໂຊນ.

System.out.println("We are offering discount :"+discount+"%");

ຜົນໄດ້ຮັບຕໍ່ໄປນີ້ຈະສະແດງຢູ່ໃນ console:

We are offering discount :30.0005%

ນອກ​ຈາກ​ນັ້ນ​, ການ​ດໍາ​ເນີນ​ງານ​ເລກ​ຄະ​ນິດ​ສາດ​ແມ່ນ​ປະ​ຕິ​ບັດ​ກ່ຽວ​ກັບ​ຄ່າ​ຕົວ​ເລກ​ເຫຼົ່າ​ນີ້​ໃນ​ໂຄງ​ການ.

#2) Double.valueOf() Method

valueOf() method ແມ່ນ​ໃຫ້ ໂດຍ wrapper class Double.

ໃຫ້ເບິ່ງວິທີການລາຍເຊັນຂ້າງລຸ່ມນີ້:

public static double valueOf(String str) throws NumberFormatException

ວິທີຄົງທີ່ນີ້ຈະສົ່ງຄືນວັດຖຸຂອງປະເພດຂໍ້ມູນ Double ທີ່ມີຄ່າສອງເທົ່າທີ່ສະແດງໂດຍ String string ທີ່ລະບຸໄວ້. ຖືກແຍກວິເຄາະ ແລະສົ່ງຄ່າສອງເທົ່າທີ່ສະແດງໂດຍ argument ເປັນເລກທົດສະນິຍົມ.

ວິທີນີ້ຖິ້ມຂໍ້ຍົກເວັ້ນ NumberFormatException ເມື່ອ String ບໍ່ມີຄ່າຕົວເລກທີ່ສາມາດເປັນ.parsed.

ໃຫ້ພວກເຮົາພະຍາຍາມເຂົ້າໃຈວິທີການໃຊ້ Double.valueOf() ດ້ວຍການຊ່ວຍເຫຼືອຂອງໂປຣແກຣມຕົວຢ່າງຕໍ່ໄປນີ້:

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using Double.valueOf() method * * @author * */ public class StringToDoubleDemo2 { public static void main(String[] args) { // Assign "1000.0000d" to String variable depositAmountStr String depositAmountStr = "1000.0000d"; // Assign "5.00D" to String variable interestRate String interestRateStr = "+5.00D"; // Assign "2" to String variable yearsStr String yearsStr = "2"; System.out.println("depositAmountStr :"+depositAmountStr); System.out.println("interestRateStr :"+interestRateStr); System.out.println("yearsStr :"+yearsStr); // Pass depositAmountStr i.e.String “1000.0000d” as a parameter to valueOf() // to convert string 'depositAmountStr' value to double // and assign it to double variable depositAmount Double depositAmount = Double.valueOf(depositAmountStr); // Pass interestRateStr i.e.String “5.00D” as a parameter to valueOf() // to convert string 'interestRateStr' value to double // and assign it to double variable discount Double interestRate = Double.valueOf(interestRateStr); // Pass yearsStr i.e.String “2” as a parameter to valueOf() // to convert string 'yearsStr' value to double // and assign it to double variable discount Double years = Double.valueOf(yearsStr); System.out.println("Welcome to ABC Bank. Thanks for depositing : $"+ depositAmount+" with our bank"); System.out.println("Our bank is offering attractive interest rate for 1 year :"+interestRate+"%"); //Calculate interest after 2 years on the deposit amount Double interestEarned = ((depositAmount*interestRate*years)/100); System.out.println("You will be receiving total interest after "+years+" is $"+interestEarned+""); } }

ນີ້ແມ່ນ ຜົນໄດ້ຮັບຂອງໂຄງການ:

depositAmountStr :1000.0000d

interestRateStr :+5.00D

yearsStr :2

ຍິນດີຕ້ອນຮັບສູ່ ABC Bank. ຂໍຂອບໃຈສຳລັບການຝາກເງິນ : $1000.0 ກັບທະນາຄານຂອງພວກເຮົາ

ທະນາຄານຂອງພວກເຮົາໃຫ້ອັດຕາດອກເບ້ຍທີ່ໜ້າສົນໃຈເປັນເວລາ 1 ປີ :5.0%

ທ່ານຈະໄດ້ຮັບດອກເບ້ຍທັງໝົດຫຼັງຈາກ 2.0 ແມ່ນ $100.0

ຢູ່ນີ້, ພວກເຮົາກໍາລັງກໍານົດຄ່າໃຫ້ກັບຕົວແປ String:

String depositAmountStr = "1000.0000d"; String interestRateStr = "+5.00D"; String yearsStr = "2"; 

ໃຊ້ວິທີ valueOf() ເພື່ອປ່ຽນຄ່າເຫຼົ່ານີ້ເປັນສອງເທົ່າຕາມຮູບຂ້າງລຸ່ມນີ້.

Double depositAmount = Double.valueOf(depositAmountStr);

ພວກເຮົາໃຊ້ ຄ່າດຽວກັນສຳລັບການຄຳນວນເລກຄະນິດເພີ່ມເຕີມຄື:

Double interestEarned = ((depositAmount*interestRate*years)/100);

#3) DecimalFormat Parse () Method

ສຳລັບອັນນີ້, ທຳອິດພວກເຮົາເອົາຕົວຢ່າງຂອງຫ້ອງຮຽນ NumberFormat ແລະໃຊ້ວິທີ parse() ຂອງຫ້ອງຮຽນ NumberFormat.

ໃຫ້ພວກເຮົາເບິ່ງວິທີການລາຍເຊັນຂ້າງລຸ່ມນີ້:

Public Number parse(String str) throws ParseException

ວິທີນີ້ວິເຄາະຂໍ້ຄວາມທີ່ລະບຸໄວ້. ອັນນີ້ໃຊ້ສະຕຣິງຈາກຕຳແໜ່ງເລີ່ມຕົ້ນ ແລະສົ່ງຄືນຕົວເລກ.

ວິທີນີ້ຖິ້ມຂໍ້ຍົກເວັ້ນ ParseException ຖ້າຈຸດເລີ່ມຕົ້ນຂອງສະຕຣິງບໍ່ຢູ່ໃນການປຽບທຽບ.

ໃຫ້ພວກເຮົາເບິ່ງໂຄງການຕົວຢ່າງຂ້າງລຸ່ມນີ້. ລະຫັດຕົວຢ່າງນີ້ວິເຄາະສະຕຣິງຂໍ້ຄວາມທີ່ມີຮູບແບບທີ່ມີຄ່າສອງເທົ່າໂດຍໃຊ້ວິທີ parse():

package com.softwaretestinghelp; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; /** * This class demonstrates sample code to convert string to double java program * using DecimalFormat parse () method * * @author * */ public class StringToDoubleDemo3 { public static void main(String [] args) throws ParseException { // Assign "5,000,00.00" to String variable pointsString String pointsString = "5,000,00.00"; System.out.println("pointsString :"+pointsString); // Pass pointsString i.e. String “+5,000,00.00” as a parameter to // DecimalFormat.getNumberInstance(). parse() method // to convert string pointsString value to double // and assign it to double variable points NumberFormat num = DecimalFormat.getNumberInstance(); Number pointsNum = num.parse(pointsString); double points = pointsNum.doubleValue(); System.out.println("Congratulations ! You have earned :"+points+" points!"); } } 

ນີ້ແມ່ນໂປຣແກມ Output:

pointsString:5,000,00.00

ຂໍຊົມເຊີຍ ! ທ່ານໄດ້ຮັບ :500000.0 ຄະແນນ!

ຢູ່ບ່ອນນີ້, ຂໍ້ຄວາມທີ່ຖືກຈັດຮູບແບບແມ່ນຖືກມອບໝາຍໃຫ້ກັບຕົວແປສະຕຣິງດັ່ງນີ້:

String pointsString = "5,000,00.00";

ຂໍ້ຄວາມທີ່ມີຮູບແບບ “5,000,00.00” ນີ້ຜ່ານໄປ. ເປັນ argument ກັບ num.parse() method.

ກ່ອນທີ່ NumberFormat class instance ຈະຖືກສ້າງໂດຍໃຊ້ DecimalFormat. getNumberInstance () method.

DecimalFormat.getNumberInstance() method. NumberFormat num = DecimalFormat.getNumberInstance(); Number pointsNum = num.parse(pointsString);

ດັ່ງນັ້ນ, double ມູນຄ່າຖືກດຶງມາໂດຍການເອີ້ນວິທີການ doubleValue() ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້.

double points = pointsNum.doubleValue();

#4) New Double() Constructor

ອີກວິທີໜຶ່ງຂອງການປ່ຽນ Java String ເປັນສອງເທົ່າແມ່ນການໃຊ້ຕົວສ້າງແບບ Double class( String str)

public Double(String str) throws NumberFormatException

ຕົວສ້າງນີ້ສ້າງ ແລະສົ່ງຄືນວັດຖຸຄູ່ທີ່ມີຄ່າຂອງປະເພດຄູ່ທີ່ສະແດງໂດຍ String ທີ່ລະບຸໄວ້.

str ແມ່ນສະຕຣິງສຳລັບການປ່ຽນເປັນສອງເທົ່າ

ວິທີນີ້ຖິ້ມຂໍ້ຍົກເວັ້ນທີ່ເອີ້ນວ່າ NumberFormatException ຖ້າ String ບໍ່ມີຄ່າຕົວເລກທີ່ສາມາດວິເຄາະໄດ້.

ໃຫ້ພວກເຮົາພະຍາຍາມເຂົ້າໃຈວິທີການໃຊ້ຕົວສ້າງ Double (String str) ນີ້ດ້ວຍການຊ່ວຍເຫຼືອຂອງໂຄງການຕົວຢ່າງຕໍ່ໄປນີ້ທີ່ຄິດໄລ່ພື້ນທີ່ຂອງວົງມົນໂດຍການແປງລັດສະໝີເປັນສອງເທົ່າຈາກ String ກ່ອນ.

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using new Double(String str) constructor * * @author * */ public class StringToDoubleDemo4 { public static void main(String[] args) { // Assign "+15.0005d" to String variable radiusStr String radiusStr = "+15.0005d"; System.out.println("radiusStr :"+radiusStr); // Pass radiusStr i.e.String “+15.0005d” as a parameter to new Double() // to convert string radiusStr value to double // and assign it to double variable radius double radius = newDouble(radiusStr).doubleValue(); System.out.println("Radius of circle :"+radius+" cm"); //Calculate area of circle double area = (3.14*(radius*radius)); System.out.println("Area of circle :"+area+" cm"); } }

ນີ້ແມ່ນຜົນອອກຂອງໂປຣແກຣມ:

radiusStr :+15.0005d

ລັດສະໝີຂອງວົງມົນ :15.0005 cm

ພື້ນທີ່ຂອງວົງມົນ :706.5471007850001 cm

ໃນໂຄງການຂ້າງເທິງ, ຄ່າລັດສະໝີຂອງວົງມົນຖືກມອບໝາຍໃຫ້ຕົວແປສະຕຣິງ:

String radiusStr = "+15.0005d";

ເພື່ອຄຳນວນພື້ນທີ່ຂອງວົງມົນ, ລັດສະໝີຈະຖືກປ່ຽນເປັນຄ່າສອງເທົ່າໂດຍໃຊ້ຕົວສ້າງ Double() ເຊິ່ງສົ່ງຄ່າປະເພດຂໍ້ມູນຄູ່. ຫຼັງຈາກນັ້ນ, ວິທີການ doubleValue() ຈະຖືກເອີ້ນຄືນຄ່າຂອງປະເພດວັນທີ primitive double ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.

double radius = new Double (radiusStr).doubleValue();

ໝາຍເຫດ: Double(String str) constructor ຖືກຍົກເລີກຕັ້ງແຕ່ Java 9.0. ນັ້ນແມ່ນເຫດຜົນທີ່ວ່າ Double ມີການປະທ້ວງໃນຂໍ້ຄວາມຂ້າງເທິງ. ດັ່ງນັ້ນ, ພວກເຮົາໄດ້ກວມເອົາວິທີການທັງຫມົດສໍາລັບການປ່ຽນ Java String ເປັນສອງປະເພດຂໍ້ມູນ Java primitive.

ໃຫ້ພວກເຮົາເບິ່ງຕໍ່ໄປນີ້ບາງຄໍາຖາມທີ່ຖາມເລື້ອຍໆກ່ຽວກັບວິທີປ່ຽນ String ເປັນສອງເທົ່າ.3

ຄຳຖາມທີ່ຖາມເລື້ອຍໆ

ຄຳຖາມ #1) ພວກເຮົາສາມາດປ່ຽນສະຕຣິງເປັນສອງເທົ່າໃນ Java ໄດ້ບໍ?

ຕອບ: ແມ່ນແລ້ວ , ໃນ Java, String ການແປງສອງເທົ່າສາມາດເຮັດໄດ້ໂດຍໃຊ້ວິທີ Java class ຕໍ່ໄປນີ້:

  • Double.parseDouble(String)
  • Double.valueOf(String)6
  • DecimalFormat parse()
  • new Double(String s)

Q #2) ເຈົ້າປ່ຽນສະຕຣິງເປັນຄູ່ໄດ້ແນວໃດ?

ຄຳຕອບ: Java ໃຫ້ວິທີການຕ່າງໆໃນການປ່ຽນສະຕຣິງເປັນສອງເທົ່າ.

ແມ່ນວິທີການຂອງ Java class ຂ້າງລຸ່ມນີ້:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • Double(String s)

ຖາມ #3) ແມ່ນສອງເທົ່າໃນ Java?

ຕອບ: ແມ່ນ . Java ໃຫ້ປະເພດຂໍ້ມູນເບື້ອງຕົ້ນຕ່າງໆເພື່ອເກັບຄ່າຕົວເລກເຊັ່ນ: short, int, double, ແລະອື່ນໆ. double ແມ່ນປະເພດຂໍ້ມູນເບື້ອງຕົ້ນຂອງ Java ສໍາລັບການສະແດງຕົວເລກຈຸດລອຍ. ປະເພດຂໍ້ມູນນີ້ໃຊ້ເວລາ 8 bytes ສໍາລັບການເກັບຮັກສາທີ່ມີຄວາມແມ່ນຍໍາ 64-bit floating-point. ປະເພດຂໍ້ມູນນີ້ແມ່ນທາງເລືອກທົ່ວໄປສໍາລັບການສະແດງຄ່າທົດສະນິຍົມ.

Q #4) ເຄື່ອງສະແກນໃນ Java ແມ່ນຫຍັງ?

ຄຳຕອບ: Java ໃຫ້ java.util.Scanner class ເພື່ອຮັບເອົາການປ້ອນຂໍ້ມູນຈາກຜູ້ໃຊ້. ມັນມີວິທີການຕ່າງໆໃນການປ້ອນຂໍ້ມູນປະເພດຕ່າງໆ. ຕົວຢ່າງ, nextLine() ຖືກໃຊ້ເພື່ອອ່ານຄ່າປະເພດຂໍ້ມູນ String. ເພື່ອອ່ານຄ່າຂໍ້ມູນສອງເທົ່າ, ມັນສະຫນອງວິທີການຕໍ່ໄປDouble().

ສະຫຼຸບ

ໃນບົດສອນນີ້, ພວກເຮົາໄດ້ເຫັນວິທີການປ່ຽນປະເພດຂໍ້ມູນ String ເປັນປະເພດຂໍ້ມູນເບື້ອງຕົ້ນ double ໃນ Java ໂດຍໃຊ້ຊັ້ນຕໍ່ໄປນີ້ ວິທີການພ້ອມກັບຕົວຢ່າງງ່າຍໆ.

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • ໃໝ່ Double(String s)
ໄປທີ່ຂອງ