วิชาคณิตศาสตร์
บทความนี้สาธิตการใช้ฟังก์ชันที่จำเป็นสำหรับคลาสคณิตศาสตร์ sqrt(), sqrtl() และ sqrtf() เพื่อคำนวณรากที่สองของตัวแปรประเภท double, long และ float ด้วยความแม่นยำตามลำดับ คลาสคณิตศาสตร์ของ C++ มีฟังก์ชันมากมายในการคำนวณการคำนวณทางคณิตศาสตร์ ซึ่งรวมถึง sin, cos, สแควร์รูท, ceil, ฟลอร์ ฯลฯ ดังนั้นจึงจำเป็นต้องนำเข้าคำจำกัดความของ
วิธี sqrt
เมธอด double sqrtl () ของคลาส Math จะคืนค่าสแควร์รูทของตัวแปร double ด้วยความแม่นยำ ไวยากรณ์ของฟังก์ชันนี้มีดังต่อไปนี้
ไวยากรณ์
double sqrt(double arg)
โครงสร้างโค้ด c++ ต่อไปนี้กำหนดตัวแปรประเภทคู่ด้วยค่าเริ่มต้นเพื่อคำนวณค่ารากที่สอง จากนั้นวิธีคลาสคณิตศาสตร์ sqrt() ยอมรับค่าเหล่านี้และให้ผลลัพธ์ด้วยค่าที่แม่นยำดังนี้
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; int main(){ double val = 225.0; cout << fixed << setprecision(5) << sqrt(val); return (0); }
ผลลัพธ์
ดังที่แสดงด้านล่าง ผลลัพธ์ของโปรแกรมนี้ถูกผลิตด้วยความแม่นยำ 5 ดังนี้
15.00000
วิธี sqrtl
วิธี long double sqrtl () ของคลาส Math จะคืนค่าสแควร์รูทของตัวแปร long double ด้วยความแม่นยำ ไวยากรณ์ของฟังก์ชันนี้มีดังต่อไปนี้
long double sqrtl(long double arg)
ภาพประกอบได้รับด้านล่างเพื่อคำนวณรากที่สองของตัวแปร long double ที่ให้มาโดยใช้วิธี Math.sqrtl() ดังต่อไปนี้
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; int main(){ long long int val = 1000000000000000000; cout << fixed << setprecision(10) << sqrt(val); return (0); }
ผลลัพธ์
หลังจากการคอมไพล์โปรแกรมโดยใช้ตัวแก้ไขโค้ด ค่าที่คำนวณได้ของตัวแปรประเภทอินพุตแบบยาวจะมีดังต่อไปนี้
1000000000.000000000
วิธี sqrtf
วิธีการ float sqrtf () ของคลาส Math จะคืนค่าสแควร์รูทของตัวแปรประเภท float ด้วยความแม่นยำ ไวยากรณ์ของฟังก์ชันนี้มีดังต่อไปนี้
ไวยากรณ์
float sqrtf(float arg)
ตามรูปแบบไวยากรณ์ โปรแกรมจะจัดเตรียมตัวแปรประเภท float ในวิธี sqrtf() เพื่อคำนวณหารากที่สองดังต่อไปนี้
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; int main(){ float val = 300.0; cout << fixed << setprecision(5) << sqrtf(val); return (0); }
ด้านนอก
เอาต์พุตของตัวแปรประเภท float ที่ให้มานั้นถูกรูทโดยตรงดังนี้
17.32051