ในบทความนี้ เราจะอภิปรายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน scalbn() ใน C++ STL
scalbn() คืออะไร?
ฟังก์ชัน scalbn() เป็นฟังก์ชันสำเร็จรูปใน C++ STL ซึ่งถูกกำหนดในไฟล์หัวข้อ <cmath> ฟังก์ชัน scalbn() ใช้สำหรับการปรับขนาด (scale) อย่างมีนัยสำคัญโดยใช้ฐานเลขชี้กำลังจุดลอยตัว (floating point base exponent)
Significand (ตัวเลขสำคัญ) เป็นส่วนของตัวเลขจุดลอยตัวที่ประกอบด้วยหลักที่สำคัญ ขึ้นอยู่กับการตีความของเลขชี้กำลัง significand อาจเป็นจำนวนเต็มหรือเศษส่วน
ฟังก์ชันคำนวณผลคูณของ num และ FLT_RADIX ยกกำลัง n โดยที่ FLT_RADIX คือฐานของชนิดข้อมูลจุดลอยตัวทั้งหมด และ num คือค่า significand และ n คือค่าเลขชี้กำลัง
ไวยากรณ์
double scalbn( double num, int n ); float scalbn( float num, int n ); long double scalbn( long double num, int n );
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้:
- num - เป็นค่าของ significand
- n - เป็นค่าของเลขชี้กำลัง
ค่าที่ส่งคืน
ฟังก์ชันนี้ส่งคืน num * FLT_RADIX^n หากสำเร็จ มิฉะนั้นส่งคืนข้อผิดพลาด math_errhandling
ตัวอย่าง
Input
scalbn(5, 7);
Output
640
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main() {
int a = 7;
int b = 5;
int hold;
hold = scalbn(b, a);
cout << "Equation is: " << b << " * " << FLT_RADIX << "^" << a << " = " << hold << endl;
return 0;
}
ผลลัพธ์
Equation is: 5 * 2^7 = 640
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main() {
float a = 2.3;
float b = 7.8;
float hold;
hold = scalbn(b, a);
cout << "Equation is: " << b << " * " << FLT_RADIX << "^" << a << " = " << hold << endl;
return 0;
}
ผลลัพธ์
Equation is: 7.8 * 2^2.3 = 31.2