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

- ดับเบิ้ลเอบีเอสแบบคงที่ (ดับเบิ้ลเอ)
- ABS ลอยคงที่ (ลอย)
- int abs แบบคงที่ (int a)
- หน้าท้องยาวแบบคงที่ (ยาว a)
public static void main(String[] args) {
System.out.println(Math.abs(-1)); // 1
System.out.println(Math.abs(-21.8d)); // 21.8
System.out.println(Math.abs(4532L)); // 4532
System.out.println(Math.abs(5.341f)); // 5.341
}
การคำนวณฟังก์ชันตรีโกณมิติ
ชั้นเรียนคณิตศาสตร์ช่วยให้คุณคำนวณฟังก์ชันตรีโกณมิติต่างๆ เช่น ไซน์ โคไซน์ แทนเจนต์ ฯลฯ ดูรายการวิธีการทั้งหมดได้จากเว็บไซต์เอกสารอย่างเป็นทางการ ด้านล่างนี้คือรายการวิธีการเหล่านี้:- บาปสองเท่าคงที่ (double a)
- cos คู่แบบคงที่ (double a)
- สแตติก ดับเบิ้ล แทน (ดับเบิ้ล เอ)
- ดับเบิ้ลแอสซินแบบคงที่ (ดับเบิ้ลเอ)
- acos คู่แบบคงที่ (double a)
- ดับเบิ้ลอะตันแบบคงที่(ดับเบิ้ลเอ)
- คงที่สองเท่าถึงดีกรี (ดับเบิ้ลอังกราด)
- คงที่สองเท่าถึงเรเดียน (angdeg สองเท่า)
public static void main(String[] args) {
System.out.println(Math.sin(Math.toRadians(0)));
System.out.println(Math.sin(Math.toRadians(30)));
System.out.println(Math.sin(Math.toRadians(90)));
System.out.println(Math.cos(Math.toRadians(0)));
System.out.println(Math.cos(Math.toRadians(30)));
System.out.println(Math.cos(Math.toRadians(90)));
}
โปรแกรมจะส่งออก:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
ซึ่งไม่ตรงกับตารางไซน์และโคไซน์มากนัก ส่วนหนึ่งเนื่องมาจากข้อผิดพลาดในการแปลงองศาเป็นเรเดียน
การยกกำลัง
หากต้องการเพิ่มจำนวนให้เป็นกำลัง คลาส Math จัดเตรียมวิธี pow ซึ่งมีลายเซ็นดังต่อไปนี้:static double pow(double a, double b)
วิธีการนี้จะเพิ่มพารามิเตอร์ `a` ให้เป็นกำลัง `b` ตัวอย่าง:
public static void main(String[] args) {
System.out.println(Math.pow(1,2)); // 1.0
System.out.println(Math.pow(2,2)); // 4.0
System.out.println(Math.pow(3,2)); // 9.0
System.out.println(Math.pow(4,2)); // 16.0
System.out.println(Math.pow(5,2)); // 25.0
System.out.println(Math.pow(1,3)); // 1.0
System.out.println(Math.pow(2,3)); // 8.0
System.out.println(Math.pow(3,3)); // 27.0
System.out.println(Math.pow(4,3)); // 64.0
System.out.println(Math.pow(5,3)); // 125.0
}
การสกัดราก
คลาส Math จัดเตรียมวิธีการในการหารากที่สองและรากที่สาม วิธีการต่อไปนี้มีหน้าที่รับผิดชอบสำหรับขั้นตอนนี้:- sqrt สองเท่าแบบคงที่ (สองเท่า a)
- ดับเบิ้ล ซีบีอาร์ที (ดับเบิ้ล เอ)
public static void main(String[] args) {
System.out.println(Math.sqrt(4)); // 2.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.cbrt(27)); // 3.0
System.out.println(Math.cbrt(125)); // 5.0
}
การสร้างตัวเลขสุ่ม
ในการสร้างตัวเลขสุ่ม คลาสคณิตศาสตร์จัดเตรียมวิธีการสุ่มไว้ วิธีการนี้จะสร้างจำนวนจริงบวก (สองเท่า) แบบสุ่มในช่วงตั้งแต่ 0.0 ถึง 1.0 ลายเซ็นวิธีการมีลักษณะดังนี้:public static double random()
ลองดูตัวอย่าง:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
หลังจากดำเนินการตามวิธีการหลักแล้ว สิ่งต่อไปนี้จะปรากฏขึ้นบนคอนโซล:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
ด้วยการปรับเปลี่ยนเพียงเล็กน้อย คุณสามารถใช้วิธีการสุ่มของคลาส Math เพื่อให้ได้ตัวเลขสุ่มจำนวนเต็มซึ่งอยู่ในช่วงที่กำหนด นี่คือตัวอย่างของฟังก์ชันที่รับสองอาร์กิวเมนต์ min และ max และส่งกลับจำนวนเต็มแบบสุ่มซึ่งอยู่ในช่วงตั้งแต่ min (รวม) ถึงสูงสุด (รวม):
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
มาเขียนเมธอด Main ซึ่งเราจะทดสอบเมธอด RandomInARange:
public class MathExample {
public static void main(String[] args) {
// Карта, в которой мы будем хранить количество выпадений Howого-то числа
Map<Integer, Integer> map = new TreeMap<>();
// За 10000 операций
for (int i = 0; i < 10000; i++) {
// Сгенерируем рандомное число от -10 включительно до 10 включительно
final Integer randomNumber = randomInARange(-10, 10);
if (!map.containsKey(randomNumber)) {
// Если карта еще не содержит "выпавшего случайного числа"
// Положим его в карту с кол-вом выпадений = 1
map.put(randomNumber, 1);
} else {
// Иначе, увеличим количество выпадений данного числа на 1
map.put(randomNumber, map.get(randomNumber) + 1);
}
}
// Выведем на экран содержимое карты в формате ключ=[meaning]
for (Map.Entry<Integer, Integer> entry : map.entrySet()){
System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
}
}
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
}
หลังจากรันเมธอด main แล้ว ผลลัพธ์อาจมีลักษณะดังนี้:
-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]
Process finished with exit code 0
การปัดเศษ
สำหรับการปัดเศษตัวเลขใน Java หนึ่งในเครื่องมือคือวิธีการของคลาส Math วิธีกลมเพดานและพื้นอย่างแม่นยำยิ่งขึ้น:- รอบยาวแบบคงที่ (ดับเบิ้ลเอ)
- รอบ int แบบคงที่ (ลอย)
- ชั้นคู่แบบคงที่ (ดับเบิ้ลเอ)
- ฝ้าเพดานคู่แบบคงที่ (ดับเบิ้ล ก)
public static void main(String[] args) {
System.out.println(Math.round(1.3)); // 1
System.out.println(Math.round(1.4)); // 1
System.out.println(Math.round(1.5)); // 2
System.out.println(Math.round(1.6)); // 2
System.out.println(Math.floor(1.3)); // 1.0
System.out.println(Math.floor(1.4)); // 1.0
System.out.println(Math.floor(1.5)); // 1.0
System.out.println(Math.floor(1.6)); // 1.0
System.out.println(Math.ceil(1.3)); // 2.0
System.out.println(Math.ceil(1.4)); // 2.0
System.out.println(Math.ceil(1.5)); // 2.0
System.out.println(Math.ceil(1.6)); // 2.0
}
บทสรุป
ในบทความนี้ เราได้เจาะลึกชั้นเรียนคณิตศาสตร์แบบผิวเผิน เราดูว่าคุณสามารถใช้งานคลาสนี้ได้อย่างไร:- คำนวณค่าโมดูโล;
- คำนวณค่าของฟังก์ชันตรีโกณมิติ
- ยกตัวเลขขึ้นสู่อำนาจ
- แยกรากสี่เหลี่ยมและลูกบาศก์
- สร้างตัวเลขสุ่ม
- ตัวเลขกลมๆ.
GO TO FULL VERSION