ในไลบรารี cmath ของ C++ มีฟังก์ชันต่างๆ ในการรับสแควร์รูท ยกเว้นจาก sqrt sqrt ถูกใช้โดยทั่วไปสำหรับอินพุตแบบคู่ ส่วนอื่นๆ ใช้สำหรับ float ข้อมูลแบบยาว ฯลฯ ให้เราดูการใช้งานของฟังก์ชั่นเหล่านี้
ฟังก์ชัน sqrt()
ฟังก์ชันนี้ใช้สำหรับข้อมูลประเภทคู่ นี่จึงคืนค่ารากที่สองของประเภทสองเท่า ไวยากรณ์เป็นเหมือนด้านล่าง
double sqrt(double argument)
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { double x = 144.0; double y = 180.0; cout << fixed << setprecision(12) << sqrt(x) << endl; cout << fixed << setprecision(12) << sqrt(y) << endl; }
ผลลัพธ์
12.000000000000 13.416407864999
โปรดทราบว่าเราต้องใส่อาร์กิวเมนต์ มิฉะนั้น จะส่งคืนข้อผิดพลาด และถ้าอาร์กิวเมนต์เป็นลบ ก็จะส่งคืน NaN
ฟังก์ชัน sqrtf()
ฟังก์ชันนี้ใช้สำหรับข้อมูลประเภทลอยตัว ดังนั้นนี่จะคืนค่าสแควร์รูทของประเภท float ไวยากรณ์เป็นเหมือนด้านล่าง
float sqrtf(float argument)
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { float x = 144.0; float y = 180.0; cout << fixed << setprecision(6) << sqrtf(x) << endl; cout << fixed << setprecision(6) << sqrtf(y) << endl; }
ผลลัพธ์
12.000000 13.416408
โปรดทราบว่าเราต้องใส่อาร์กิวเมนต์ มิฉะนั้น จะส่งคืนข้อผิดพลาด และถ้าอาร์กิวเมนต์เป็นลบ ก็จะส่งคืน NaN
ฟังก์ชัน sqrtl()
ฟังก์ชันนี้ใช้สำหรับข้อมูลประเภทคู่แบบยาว นี่จึงคืนค่าสแควร์รูทของประเภท long double นี่คือสองเท่าที่มีความแม่นยำมากขึ้น เมื่อเราใช้จำนวนเต็มของคำสั่ง 1018 ฟังก์ชันนี้จะเป็นประโยชน์
long double sqrtl(long double argument)
ตัวอย่าง
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { long long int x = 5000000000000000000; long long int y = 999999999999999999; cout << fixed << setprecision(12) << sqrtl(x) << endl; cout << fixed << setprecision(12) << sqrtl(y) << endl; }
ผลลัพธ์
2236067977.499789696420 999999999.999999999476