Java คณิตศาสตร์ – ceil() พื้น () วิธีการ

⚡ สรุปอย่างชาญฉลาด

Java คลาส Math (java.lang.Math) มีเมธอดแบบคงที่สำหรับคำนวณค่าสัมบูรณ์ การปัดเศษ การปัดขึ้น การปัดลง ค่าต่ำสุด ค่าสูงสุด เลขยกกำลัง ลอการิทึม และตรีโกณมิติ ฟังก์ชันในตัวเหล่านี้ช่วยลดการคำนวณด้วยตนเอง ทำให้สามารถคำนวณทางวิทยาศาสตร์ได้อย่างแม่นยำโดยตรงภายในคลาสใดก็ได้ Java โครงการ

  • 🔢 ค่าคงที่: Math.E (2.718281828459045) และ Math.PI (3.141592653589793) ถูกเปิดเผยเป็นฟิลด์ประเภท double สำหรับสูตรลอการิทึมและเรขาคณิต
  • 📏 ตระกูล Rounding: abs() ส่งคืนค่าขนาด, round() ให้ค่าจำนวนเต็มที่ใกล้เคียงที่สุด, ในขณะที่ ceil() และ floor() ปัดเศษขึ้นและลงให้เป็นจำนวนเต็ม
  • 🇧🇷 วิธีการเปรียบเทียบ: ฟังก์ชัน min() และ max() จะคืนค่าที่น้อยกว่าหรือมากกว่าระหว่างค่าตัวเลขสองค่าที่ส่งเข้ามา โดยครอบคลุมประเภทข้อมูล int, long, float และ double
  • 📈 คณิตศาสตร์ขั้นสูง: ฟังก์ชัน exp(), log(), pow() และ sqrt() ใช้สำหรับคำนวณเลขยกกำลัง เลขลอการิทึม กำลัง และรากที่สองของค่าประเภท double
  • 📐 ตรีโกณมิติ: ฟังก์ชัน sin(), cos(), tan(), atan2(), toRadians() และ toDegrees() ทำงานในหน่วยเรเดียนสำหรับการคำนวณตามมุม

Java เมธอด ceil() และ floor() ทางคณิตศาสตร์

เป็นสิ่งที่ Java วิชาคณิตศาสตร์?

Java มีการประยุกต์ใช้งานขั้นสูงหลายด้าน รวมถึงการคำนวณที่ซับซ้อนในวิชาฟิสิกส์ สถาปัตยกรรมและการออกแบบโครงสร้าง การทำงานกับแผนที่และเส้นละติจูดและลองจิจูดที่เกี่ยวข้อง และอื่นๆ อีกมากมาย

แอปพลิเคชันทั้งหมดนี้ล้วนต้องการการคำนวณและสมการที่ซับซ้อน ซึ่งยุ่งยากหากต้องทำด้วยมือ การคำนวณโดยใช้โปรแกรมจะเกี่ยวข้องกับการใช้ลอการิทึม ตรีโกณมิติ สมการเลขชี้กำลัง และการดำเนินการที่คล้ายคลึงกัน

Java ชั้นเรียนคณิตศาสตร์

ขณะนี้ คุณไม่สามารถเขียนโค้ดตารางลอการิทึมหรือตรีโกณมิติทั้งหมดลงในแอปพลิเคชันหรือข้อมูลของคุณได้ เนื่องจากข้อมูลจะมีขนาดใหญ่และซับซ้อนในการบำรุงรักษา

Java วิชาคณิตศาสตร์เป็นวิชาที่มีประโยชน์มากสำหรับจุดประสงค์นี้ Java คลาส (java.lang.Math) คลาสนี้มีเมธอดสำหรับดำเนินการต่างๆ เช่น การยกกำลัง การหาลอการิทึม การหาค่าราก และการแก้สมการตรีโกณมิติ

องค์ประกอบพื้นฐานที่สุดสองอย่างในคณิตศาสตร์คือ “e” (ฐานของลอการิทึมธรรมชาติ) และ “pi” (อัตราส่วนของเส้นรอบวงของวงกลมต่อเส้นผ่านศูนย์กลาง) ค่าคงที่ทั้งสองนี้มักจำเป็นในการคำนวณและการดำเนินการข้างต้น ดังนั้น วิชาคณิตศาสตร์ใน... Java กำหนดค่าคงที่สองค่านี้ในรูปแบบฟิลด์ double:

  • คณิตศาสตร์.จ – มีค่าเท่ากับ 2.718281828459045
  • คณิตศาสตร์.พีไอ – มีค่าเท่ากับ 3.141592653589793

ลองมาดูตารางด้านล่างนี้ซึ่งแสดงข้อมูล วิธีการพื้นฐาน และคำอธิบายของพวกเขา:

วิธีDescriptไอออนข้อโต้แย้ง
เอบีเอสส่งกลับค่าสัมบูรณ์ของอาร์กิวเมนต์Double, ลอย, int, ยาว
ปัดเศษส่งคืนค่าจำนวนเต็มหรือจำนวนยาวที่ใกล้เคียงที่สุด (ตามอาร์กิวเมนต์)สองเท่าหรือลอย
เพดานฟังก์ชันซีลทางคณิตศาสตร์ใน Java ส่งกลับจำนวนเต็มที่น้อยที่สุดที่มากกว่าหรือเท่ากับอาร์กิวเมนต์Double
ชั้นJava วิธีการ floor ส่งกลับจำนวนเต็มที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับอาร์กิวเมนต์Double
นาทีส่งกลับค่าอาร์กิวเมนต์ที่น้อยที่สุดจากทั้งสองDouble, ลอย, int, ยาว
แม็กซ์ส่งคืนอาร์กิวเมนต์ที่ใหญ่ที่สุดจากทั้งสองDouble, ลอย, int, ยาว

ด้านล่างนี้คือโค้ดที่นำวิธีการข้างต้นไปใช้

หมายเหตุ ไม่จำเป็นต้องนำเข้า java.lang.Math อย่างชัดเจน เนื่องจากมีการนำเข้าโดยปริยายอยู่แล้ว และเมธอดทั้งหมดของมันเป็นแบบ static

ตัวแปรจำนวนเต็ม:

int i1 = 27;
int i2 = -45;

Double ตัวแปร (ทศนิยม):

double d1 = 84.6;
double d2 = 0.45;

Java วิธีการทางคณิตศาสตร์ ABS() พร้อมตัวอย่าง

การขอ Java คณิตศาสตร์ abs() วิธีการส่งกลับค่าสัมบูรณ์ของอาร์กิวเมนต์

public class Guru99 {
 public static void main(String args[]) {
  int i1 = 27;
  int i2 = -45;
  double d1 = 84.6;
  double d2 = 0.45;
  System.out.println("Absolute value of i1: " + Math.abs(i1));
  System.out.println("Absolute value of i2: " + Math.abs(i2));
  System.out.println("Absolute value of d1: " + Math.abs(d1));
  System.out.println("Absolute value of d2: " + Math.abs(d2));
 }
}

ผลลัพธ์ที่คาดหวัง:

Absolute value of i1: 27
Absolute value of i2: 45
Absolute value of d1: 84.6
Absolute value of d2: 0.45

Java วิธีการ Math.round() พร้อมตัวอย่าง

เมธอด Math.round() ใน Java ฟังก์ชันนี้จะคืนค่าจำนวนเต็มหรือจำนวนยาวที่ใกล้เคียงที่สุดตามค่าที่ป้อนเข้ามา ตัวอย่างการใช้ Math.round แสดงอยู่ด้านล่าง Java วิธี

public class Guru99 {
 public static void main(String args[]) {
  double d1 = 84.6;
  double d2 = 0.45;
  System.out.println("Round off for d1: " + Math.round(d1));
  System.out.println("Round off for d2: " + Math.round(d2));
 }
}

ผลลัพธ์ที่คาดหวัง:

Round off for d1: 85
Round off for d2: 0

Java ตัวอย่างการใช้งานเมธอด Math.ceil() และ Math.floor()

เมธอด Math.ceil() และ Math.floor() ใน Java ใช้เพื่อส่งคืนจำนวนเต็มที่เล็กที่สุดและใหญ่ที่สุดที่มากกว่าหรือเท่ากับ (และน้อยกว่าหรือเท่ากับ) อาร์กิวเมนต์ ตามลำดับ ด้านล่างนี้คือค่า floor และ ceiling ของฟังก์ชัน Math Java ตัวอย่าง.

public class Guru99 {
 public static void main(String args[]) {
  double d1 = 84.6;
  double d2 = 0.45;
  System.out.println("Ceiling of '" + d1 + "' = " + Math.ceil(d1));
  System.out.println("Floor of '" + d1 + "' = " + Math.floor(d1));
  System.out.println("Ceiling of '" + d2 + "' = " + Math.ceil(d2));
  System.out.println("Floor of '" + d2 + "' = " + Math.floor(d2));
 }
}

เราจะได้ผลลัพธ์ของ Math.ceil ดังต่อไปนี้ Java ตัวอย่าง.

ผลลัพธ์ที่คาดหวัง:

Ceiling of '84.6' = 85.0
Floor of '84.6' = 84.0
Ceiling of '0.45' = 1.0
Floor of '0.45' = 0.0

Java ตัวอย่างการใช้งานเมธอด Math.min() และ Math.max()

การขอ Java เมธอด Math.min() จะคืนค่าที่น้อยที่สุดจากสองค่าที่ป้อนเข้าไป ในขณะที่เมธอด Math.max() จะคืนค่าที่มากที่สุดจากสองค่าที่ป้อนเข้าไป

public class Guru99 {
 public static void main(String args[]) {
  int i1 = 27;
  int i2 = -45;
  double d1 = 84.6;
  double d2 = 0.45;
  System.out.println("Minimum out of '" + i1 + "' and '" + i2 + "' = " + Math.min(i1, i2));
  System.out.println("Maximum out of '" + i1 + "' and '" + i2 + "' = " + Math.max(i1, i2));
  System.out.println("Minimum out of '" + d1 + "' and '" + d2 + "' = " + Math.min(d1, d2));
  System.out.println("Maximum out of '" + d1 + "' and '" + d2 + "' = " + Math.max(d1, d2));
 }
}

ผลลัพธ์ที่คาดหวัง:

Minimum out of '27' and '-45' = -45
Maximum out of '27' and '-45' = 27
Minimum out of '84.6' and '0.45' = 0.45
Maximum out of '84.6' and '0.45' = 84.6

Java วิธีการทางคณิตศาสตร์เกี่ยวกับการยกกำลังและลอการิทึม

นอกเหนือจากวิธีการพื้นฐานแล้ว Java ในวิชาคณิตศาสตร์ยังมีเรื่องการคำนวณเลขยกกำลังและเลขลอการิทึมด้วย ตารางด้านล่างแสดงวิธีการเหล่านี้พร้อมคำอธิบาย

วิธีDescriptไอออนข้อโต้แย้ง
ประสบการณ์ส่งคืนค่าฐานของลอการิทึมธรรมชาติ (e) ยกกำลังอาร์กิวเมนต์Double
เข้าสู่ระบบส่งกลับบันทึกธรรมชาติของอาร์กิวเมนต์สอง
ธารรับ 2 อาร์กิวเมนต์เป็นอินพุต และส่งกลับค่าของอาร์กิวเมนต์แรกที่ยกกำลังของอาร์กิวเมนต์ที่สองDouble
ชั้นJava math floor ส่งคืนจำนวนเต็มที่มากที่สุดซึ่งน้อยกว่าหรือเท่ากับอาร์กิวเมนต์Double
ตร.วส่งคืนค่ารากที่สองของอาร์กิวเมนต์Double

ด้านล่างนี้คือโค้ดที่นำวิธีการข้างต้นไปใช้ (ใช้ตัวแปรเดียวกันกับข้างต้น)

public class Guru99 {
 public static void main(String args[]) {
  double d1 = 84.6;
  double d2 = 0.45;
  System.out.println("exp(" + d2 + ") = " + Math.exp(d2));
  System.out.println("log(" + d2 + ") = " + Math.log(d2));
  System.out.println("pow(5, 3) = " + Math.pow(5.0, 3.0));
  System.out.println("sqrt(16) = " + Math.sqrt(16));
 }
}

ผลลัพธ์ที่คาดหวัง:

exp(0.45) = 1.568312185490169
log(0.45) = -0.7985076962177716
pow(5, 3) = 125.0
sqrt(16) = 4.0

Java วิธีการตรีโกณมิติทางคณิตศาสตร์

การขอ Java ในวิชาคณิตศาสตร์ยังมีการสอนเรื่องการดำเนินการทางตรีโกณมิติเพิ่มเติม ตารางด้านล่างแสดงวิธีการเหล่านี้และคำอธิบาย

วิธีDescriptไอออนข้อโต้แย้ง
บาปส่งคืนค่าไซน์ของอาร์กิวเมนต์ที่ระบุDouble
เกวียนส่งคืนค่าโคไซน์ของอาร์กิวเมนต์ที่ระบุสอง
สีน้ำตาลส่งคืนค่าแทนเจนต์ของอาร์กิวเมนต์ที่ระบุDouble
อาทาน2แปลงพิกัดสี่เหลี่ยม (x, y) เป็นพิกัดเชิงขั้ว (r, theta) และส่งคืนค่า thetaDouble
ถึงองศาแปลงอาร์กิวเมนต์เป็นองศาDouble
ตร.วส่งคืนค่ารากที่สองของอาร์กิวเมนต์Double
ถึงเรเดียนแปลงค่าอาร์กิวเมนต์เป็นเรเดียนDouble

ค่าเริ่มต้นของพารามิเตอร์จะอยู่ในหน่วยเรเดียน ด้านล่างนี้คือตัวอย่างโค้ด

public class Guru99 {
 public static void main(String args[]) {
  double angle_30 = 30.0;
  double radian_30 = Math.toRadians(angle_30);
  System.out.println("sin(30) = " + Math.sin(radian_30));
  System.out.println("cos(30) = " + Math.cos(radian_30));
  System.out.println("tan(30) = " + Math.tan(radian_30));
  System.out.println("Theta = " + Math.atan2(4, 2));
 }
}

ผลลัพธ์ที่คาดหวัง:

sin(30) = 0.49999999999999994
cos(30) = 0.8660254037844387
tan(30) = 0.5773502691896257
Theta = 1.1071487177940904

ด้วยวิธีการข้างต้น คุณจึงสามารถออกแบบเครื่องคิดเลขวิทยาศาสตร์ของคุณเองได้เช่นกัน Java.

คำถามที่พบบ่อย

Java Math เป็นคลาสยูทิลิตี้สุดท้ายใน java.lang ที่มีเมธอดแบบ static สำหรับการดำเนินการทางตัวเลขทั่วไป รวมถึงค่าสัมบูรณ์ การปัดเศษ เลขยกกำลัง ราก ลอการิทึม และตรีโกณมิติ ตลอดจนค่าคงที่ Math.PI และ Math.E

ไม่ครับ แพ็กเกจ java.lang ถูกนำเข้าโดยปริยาย ดังนั้นเมธอด Math จึงพร้อมใช้งานเสมอ หากต้องการโค้ดที่กระชับขึ้น ให้เพิ่ม `import static java.lang.Math.*;` แล้วเรียกใช้ sqrt หรือ pow โดยไม่ต้องมีคำนำหน้า Math ครับ

Math.ceil จะคืนค่าจำนวนเต็มที่เล็กที่สุดที่มากกว่าหรือเท่ากับค่าที่ป้อนเข้าไป ในขณะที่ Math.floor จะคืนค่าจำนวนเต็มที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับค่าที่ป้อนเข้าไป ทั้งสองฟังก์ชันคืนค่าเป็นประเภท double ดังนั้น 4.2 จะกลายเป็น 5.0 หรือ 4.0 ตามลำดับ

วิธีการทางตรีโกณมิติทั้งหมดคาดหวังหน่วยเป็นเรเดียน ไม่ใช่องศา แปลงหน่วยด้วย Math.toRadians(30) ก่อนเรียกใช้ sin, cos หรือ tan มิฉะนั้น วิธีการจะถือว่า 30 เป็น 30 เรเดียนและส่งคืนค่าที่แตกต่างกันอย่างมาก

Java ไม่มีตัวดำเนินการยกกำลังโดยเฉพาะ เครื่องหมาย ^ คือการ XOR ระดับบิต ไม่ใช่การยกกำลัง สำหรับการยกกำลัง ให้ใช้ Math.pow(base, exponent) สำหรับการยกกำลังสองของจำนวนเต็ม การคูณ x * x จะเร็วกว่าการเรียกใช้ Math.pow

ใช้ Math.addExact เมื่อใดก็ตามที่การโอเวอร์โฟลว์แสดงถึงข้อผิดพลาดที่แท้จริง เช่น ตัวนับ ผลรวมทางการเงิน หรือการคำนวณดัชนี โดยจะโยนข้อยกเว้น ArithmeticException แทนที่จะห่อหุ้มค่าเดิมping โดยเงียบๆ ทำให้ผลลัพธ์ที่ไม่ถูกต้องนั้นชัดเจนและสังเกตเห็นได้ง่าย

ไลบรารีการเรียนรู้ของเครื่องใน Java ใช้ Math.exp สำหรับ softmax, Math.log สำหรับ cross-entropy loss, Math.sqrt สำหรับเมตริก RMS และ Math.tanh สำหรับฟังก์ชันการกระตุ้น จากนั้นเฟรมเวิร์กคณิตศาสตร์เวกเตอร์จะรวมการเรียกใช้เหล่านี้เข้ากับอาร์เรย์ต่างๆ เพื่อใช้ในการฝึกฝนและการอนุมาน

ใช่แล้ว GitHub Copilot จะสร้างโครงสร้างการเรียกใช้เมธอดทางคณิตศาสตร์ การแปลงค่าเรเดียน และการคำนวณที่ปลอดภัยจากค่าเกินขีดจำกัด จากคำอธิบายประกอบสูตร Revตรวจสอบคำแนะนำแต่ละข้อสำหรับกรณีพิเศษทางตัวเลข เช่น การหารด้วยศูนย์ หรือการสูญเสียความแม่นยำ ก่อนส่งมอบping.

สรุปโพสต์นี้ด้วย: