กลับไปหน้าบทความ

อ่าน 4 นาที

ฟังก์ชันทางคณิตศาสตร์ C

การดำเนินการทางคณิตศาสตร์ของภาษา Cคือกลุ่มของฟังก์ชันในไลบรารีมาตรฐานของภาษาการเขียนโปรแกรม C ที่ใช้ฟังก์ชันทางคณิตศาสตร์พื้นฐาน มาตรฐาน C ที่แตกต่างกันมีชุดฟังก์ชันที่แตกต่างกัน

ฟังก์ชันทางคณิตศาสตร์ C

การดำเนินการทางคณิตศาสตร์ของภาษา Cคือกลุ่มของฟังก์ชันในไลบรารีมาตรฐานของภาษาการเขียนโปรแกรม C ที่ใช้ฟังก์ชันทางคณิตศาสตร์พื้นฐาน[ 1 ] [ 2 ]มาตรฐาน C ที่แตกต่างกันมีชุดฟังก์ชันที่แตกต่างกัน แม้ว่าจะเข้ากันได้กับเวอร์ชันก่อนหน้าก็ตาม ฟังก์ชันส่วนใหญ่เหล่านี้ยังมีอยู่ในไลบรารีมาตรฐาน C++ ด้วย เช่นกัน แม้ว่าจะอยู่ในส่วนหัวที่แตกต่างกัน (ส่วนหัวของ C ก็รวมอยู่ด้วย แต่เป็นเพียงคุณสมบัติความเข้ากันได้ที่เลิกใช้แล้ว)

ภาพรวมของฟังก์ชันต่างๆ

ฟังก์ชันทางคณิตศาสตร์ส่วนใหญ่ที่ใช้ตัวเลขทศนิยมจะถูกกำหนดไว้ใน ไฟล์เฮดเดอร์ <math.h>` <cmath>.php` (ใน C++) ส่วนฟังก์ชันที่ทำงานกับจำนวนเต็มเช่นabs`flow`, labs` divflow`, `flow` และ `flow` จะถูกกำหนดไว้ใน ไฟล์เฮดเดอร์ `.php` ( ใน C++) ldivแทน<stdlib.h><cstdlib>

ฟังก์ชันใดๆ ที่ดำเนินการกับมุมจะใช้เรเดียนเป็นหน่วยของมุม[ 1 ]

ฟังก์ชันเหล่านี้บางส่วนไม่มีอยู่ใน มาตรฐานเวอร์ชัน C89สำหรับฟังก์ชันที่มีอยู่ ฟังก์ชันจะรับเฉพาะประเภทdoubleสำหรับอาร์กิวเมนต์จุดลอยตัว ซึ่งนำไปสู่การแปลงประเภทที่มีค่าใช้จ่ายสูงในโค้ดที่ใช้floatค่าความแม่นยำเดี่ยว ใน C99 ข้อบกพร่องนี้ได้รับการแก้ไขโดยการแนะนำชุดฟังก์ชันใหม่ที่ทำงานกับอาร์กิวเมนต์floatและlong doubleฟังก์ชันเหล่านั้นระบุโดย คำต่อท้าย fและlตามลำดับ[ 3 ]

การทำงาน คำอธิบาย
abslabsllabsคำนวณค่าสัมบูรณ์ของจำนวนเต็ม
fabsคำนวณค่าสัมบูรณ์ของค่าทศนิยม
divldivlldivคำนวณผลหารและเศษเหลือของการหารจำนวนเต็ม
fmodส่วนที่เหลือของการดำเนินการหารเลขทศนิยม
remainderลงนามในส่วนที่เหลือของการดำเนินงานของแผนก
remquoลงนามส่วนที่เหลือ รวมถึงสามส่วนสุดท้ายของการดำเนินการแบ่งส่วน
fmaการดำเนินการ คูณและบวกแบบหลอมรวม
fmaxค่าที่มากกว่าระหว่างค่าทศนิยมสองค่า
fminค่าที่น้อยกว่าของค่าทศนิยมสองค่า
fdimผลต่างบวกของค่าทศนิยมสองค่า
nannanfnanlส่งคืนค่าNaN (ไม่ใช่ตัวเลข)
ฟังก์ชัน เลขชี้กำลังexpส่งคืนค่า eยกกำลังที่กำหนด
exp2ส่งคืนค่า 2 ยกกำลังที่กำหนด
expm1ส่งคืนค่า e ยกกำลังที่กำหนด ลบหนึ่ง
logคำนวณลอการิทึมธรรมชาติ (ฐาน e)
log2คำนวณลอการิทึมฐานสอง (ฐาน 2)
log10คำนวณลอการิทึมฐานสิบ (ฐาน 10)
log1pคำนวณลอการิทึมธรรมชาติ (ฐาน e) ของ 1 บวกกับจำนวนที่กำหนดให้
ilogbดึงเลขชี้กำลังของจำนวน
logbดึงเลขชี้กำลังของจำนวน
ฟังก์ชัน พลังงานsqrtคำนวณรากที่สอง
cbrtคำนวณรากที่สาม
hypotคำนวณรากที่สองของผลรวมของกำลังสองของจำนวนสองจำนวนที่กำหนดให้
powยกกำลังจำนวนที่กำหนด[ 4 ]
ฟังก์ชัน ตรีโกณมิติsinคำนวณค่าไซน์
cosคำนวณค่าโคไซน์
tanคำนวณแทนเจนต์
asinคำนวณค่าอาร์คไซน์
acosคำนวณค่าอาร์คโคไซน์
atanคำนวณค่าอาร์คแทนเจนต์
atan2คำนวณค่าอาร์คแทนเจนต์ โดยใช้เครื่องหมายเพื่อกำหนดควอดแรนต์
ฟังก์ชัน ไฮเปอร์โบลิกsinhคำนวณค่าไซน์ไฮเปอร์โบลิก
coshคำนวณค่าโคไซน์ไฮเปอร์โบลิก
tanhคำนวณค่าแทนเจนต์ไฮเปอร์โบลิก
asinhคำนวณค่าไซน์ส่วนโค้งไฮเปอร์โบลิก
acoshคำนวณค่าโคไซน์ส่วนโค้งไฮเปอร์โบลิก
atanhคำนวณค่าอาร์คแทนเจนต์ไฮเปอร์โบลิก
ฟังก์ชันข้อ ผิดพลาดและแกมมาerfคำนวณฟังก์ชันข้อผิดพลาด
erfcคำนวณฟังก์ชันข้อผิดพลาดเสริม
lgammaคำนวณค่าลอการิทึมธรรมชาติของค่าสัมบูรณ์ของฟังก์ชันแกมมา
tgammaคำนวณฟังก์ชันแกมมา
การดำเนินการ จุดลอยตัวจำนวนเต็มที่ใกล้ที่สุดceilส่งคืนค่าจำนวนเต็มที่ใกล้เคียงที่สุดซึ่งไม่น้อยกว่าค่าที่กำหนด
floorส่งคืนค่าจำนวนเต็มที่ใกล้เคียงที่สุดซึ่งไม่มากกว่าค่าที่กำหนด
truncส่งคืนจำนวนเต็มที่ใกล้เคียงที่สุดซึ่งมีขนาดไม่มากกว่าค่าที่กำหนด
roundlroundllroundส่งคืนค่าจำนวนเต็มที่ใกล้เคียงที่สุด โดยปัดเศษออกจากศูนย์ในกรณีที่ค่าอยู่กึ่งกลาง
nearbyintส่งคืนค่าจำนวนเต็มที่ใกล้เคียงที่สุดโดยใช้โหมดการปัดเศษปัจจุบัน
rintlrintllrintส่งคืนค่าจำนวนเต็มที่ใกล้เคียงที่สุดโดยใช้โหมดการปัดเศษปัจจุบัน ยกเว้นกรณีที่ผลลัพธ์แตกต่างกัน
ฟังก์ชัน การจัดการจุดลอยตัวfrexpแยกตัวเลขออกเป็นส่วนสำคัญและเลขยกกำลังของ 2
ldexpคูณจำนวนหนึ่งด้วย 2 ยกกำลัง
modfแยกตัวเลขออกเป็นส่วนจำนวนเต็มและส่วนทศนิยม
scalbnscalblnคูณตัวเลขด้วย FLT_RADIX ยกกำลัง
nextafternexttowardส่งคืนค่าทศนิยมที่สามารถแสดงได้ถัดไปที่ใกล้เคียงกับค่าที่กำหนด
copysignคัดลอกเครื่องหมายของค่าทศนิยม
การจำแนกประเภท fpclassifyจัดประเภทค่าทศนิยมที่กำหนด
isfiniteตรวจสอบว่าอาร์กิวเมนต์มีค่าจำกัดหรือไม่
isinfตรวจสอบว่าอาร์กิวเมนต์เป็นอนันต์หรือไม่
isnanตรวจสอบว่าค่าอาร์กิวเมนต์เป็น NaN หรือไม่
isnormalตรวจสอบว่าอาร์กิวเมนต์เป็นปกติหรือไม่
signbitตรวจสอบว่าเครื่องหมายของอาร์กิวเมนต์เป็นลบหรือไม่

สภาพแวดล้อมจุดลอยตัว

C99เพิ่มฟังก์ชันและประเภทต่างๆ หลายอย่างสำหรับการควบคุมสภาพแวดล้อมจุดลอยตัวแบบละเอียด[ 3 ]ฟังก์ชันเหล่านี้สามารถใช้เพื่อควบคุมการตั้งค่าต่างๆ ที่ส่งผลต่อการคำนวณจุดลอยตัว เช่น โหมดการปัดเศษ เงื่อนไขที่ทำให้เกิดข้อยกเว้น เมื่อตัวเลขถูกล้างเป็นศูนย์ เป็นต้น ฟังก์ชันและประเภทสภาพแวดล้อมจุดลอยตัวถูกกำหนดไว้ใน<fenv.h>ส่วนหัว ( <cfenv>ในC++ )

การทำงาน คำอธิบาย
feclearexceptล้างข้อยกเว้น ( C99 )
fegetenvจัดเก็บสภาพแวดล้อมจุดลอยตัวปัจจุบัน ( C99 )
fegetexceptflagจัดเก็บแฟล็กสถานะปัจจุบัน ( C99 )
fegetroundดึงทิศทางการปัดเศษปัจจุบัน ( C99 )
feholdexceptบันทึกสภาพแวดล้อมจุดลอยตัวปัจจุบันและล้างข้อยกเว้นทั้งหมด ( C99 )
feraiseexceptทำให้เกิดข้อผิดพลาดเกี่ยวกับเลขทศนิยม ( C99 )
fesetenvตั้งค่าสภาพแวดล้อมจุดลอยตัวปัจจุบัน ( C99 )
fesetexceptflagตั้งค่าสถานะปัจจุบัน ( C99 )
fesetroundกำหนดทิศทางการปัดเศษปัจจุบัน ( C99 )
fetestexceptทดสอบว่ามีการยกข้อยกเว้นบางประการหรือไม่ ( C99 )
feupdateenvคืนค่าสภาพแวดล้อมจุดลอยตัว แต่ยังคงข้อยกเว้นปัจจุบันไว้ ( C99 )

จำนวนเชิงซ้อน

C99เพิ่ม_Complexคีย์เวิร์ดใหม่ (และcomplexมาโครอำนวยความสะดวก ซึ่งใช้ได้เฉพาะเมื่อ<complex.h>มีการรวมเฮดเดอร์ไว้เท่านั้น) ที่ให้การสนับสนุนจำนวนเชิงซ้อน ชนิดข้อมูลจุดลอยตัวใดๆ ก็สามารถแก้ไขได้ด้วย `completion` complexและจะถูกกำหนดเป็นคู่ของจำนวนจุดลอยตัว โปรดทราบว่า C99 และ C++ ไม่ได้ใช้งานจำนวนเชิงซ้อนในลักษณะที่เข้ากันได้ในโค้ด – C++ จะใช้คลาส `completion` แทน std::complex

การดำเนินการทั้งหมดบนจำนวนเชิงซ้อนถูกกำหนดไว้ใน<complex.h>ส่วนหัว เช่นเดียวกับฟังก์ชันค่าจริง คำต่อท้าย " fหรือl" จะแสดงถึง รูปแบบ " float complexหรือlong double complex" ของฟังก์ชันนั้น

การทำงาน คำอธิบาย
การดำเนินงาน ขั้นพื้นฐานcabsคำนวณค่าสัมบูรณ์ ( C99 )
cargคำนวณค่าอาร์กิวเมนต์ของจำนวนเชิงซ้อน ( C99 )
cimagคำนวณส่วนจินตภาพของจำนวนเชิงซ้อน ( C99 )
crealคำนวณส่วนจริงของจำนวนเชิงซ้อน ( C99 )
conjคำนวณคอนจูเกตเชิงซ้อน ( C99 )
cprojคำนวณการฉายภาพเชิงซ้อนลงบนทรงกลมรีมันน์ ( C99 )
การดำเนินการ ยกกำลังcexpคำนวณเลขชี้กำลัง เชิงซ้อน ( C99 )
clogคำนวณลอการิทึม เชิงซ้อน ( C99 )
csqrtคำนวณรากที่สอง เชิงซ้อน ( C99 )
cpowคำนวณกำลัง เชิงซ้อน ( C99 )
การดำเนินการ ตรีโกณมิติcsinคำนวณไซน์ เชิงซ้อน ( C99 )
ccosคำนวณค่า โคไซน์เชิงซ้อน( C99 )
ctanคำนวณแทนเจนต์ เชิงซ้อน ( C99 )
casinคำนวณค่า ไซน์ส่วนโค้งเชิงซ้อน( C99 )
cacosคำนวณค่า โคไซน์ส่วนโค้งเชิงซ้อน( C99 )
catanคำนวณค่า อาร์คแทนเจนต์เชิงซ้อน( C99 )
การดำเนินการ ไฮเปอร์โบลิกcsinhคำนวณไซน์ไฮเปอร์โบลิก เชิงซ้อน ( C99 )
ccoshคำนวณโคไซน์ไฮเปอร์โบลิก เชิงซ้อน ( C99 )
ctanhคำนวณแทนเจนต์ไฮเปอร์โบลิก เชิงซ้อน ( C99 )
casinhคำนวณไซน์ส่วนโค้งไฮเปอร์โบลิก เชิงซ้อน ( C99 )
cacoshคำนวณค่าโคไซน์ส่วนโค้งไฮเปอร์โบลิก เชิงซ้อน ( C99 )
catanhคำนวณค่า อาร์ คแทนเจนต์ไฮเปอร์โบลิก เชิงซ้อน ( C99 )

ฟังก์ชันที่ซับซ้อนกว่าบางส่วน "สงวนไว้สำหรับการใช้งานในอนาคตใน C99" [ 5 ]การใช้งานนั้นจัดทำโดยโครงการโอเพนซอร์สที่ไม่ได้เป็นส่วนหนึ่งของไลบรารีมาตรฐาน

การทำงาน คำอธิบาย
ฟังก์ชันข้อผิดพลาด cerfคำนวณฟังก์ชันข้อผิดพลาด เชิงซ้อน ( C99 )
cerfcคำนวณ ฟังก์ชันข้อผิดพลาดเสริมเชิงซ้อน( C99 )

ฟังก์ชันทั่วไปของประเภท

ส่วนหัวของไฟล์<tgmath.h>กำหนดมาโครแบบทั่วไปสำหรับฟังก์ชันทางคณิตศาสตร์แต่ละฟังก์ชันที่กำหนดไว้ในไฟล์<math.h>และ<complex.h>ไฟล์ ซึ่งจะเพิ่มการสนับสนุนแบบจำกัดสำหรับการโอเวอร์โหลดฟังก์ชันทางคณิตศาสตร์: สามารถใช้ชื่อฟังก์ชันเดียวกันกับพารามิเตอร์ประเภทต่างๆ ได้ โดยฟังก์ชันจริงจะถูกเลือกในระหว่างการคอมไพล์ตามประเภทของพารามิเตอร์

มาโครแบบเจเนริกแต่ละตัวที่สอดคล้องกับฟังก์ชันที่กำหนดไว้สำหรับทั้งจำนวนจริงและจำนวนเชิงซ้อน จะรวบรวมฟังก์ชันที่แตกต่างกันทั้งหมด 6 ฟังก์ชัน ได้แก่float, doubleและlong doubleและcomplexรูปแบบต่างๆ ของฟังก์ชันเหล่านั้น ส่วนมาโครแบบเจเนริกที่สอดคล้องกับฟังก์ชันที่กำหนดไว้สำหรับจำนวนจริงเท่านั้น จะรวบรวมฟังก์ชันที่แตกต่างกันทั้งหมด 3 ฟังก์ชัน ได้แก่float, doubleและlong doubleรูปแบบต่างๆ ของฟังก์ชันนั้น

ภาษา C++ มีการรองรับการโอเวอร์โหลดฟังก์ชันโดยธรรมชาติอยู่แล้ว ดังนั้นจึงไม่จำเป็นต้องมี<tgmath.h>ไฟล์เฮดเดอร์เพิ่มเติม แม้แต่เพื่อเป็นคุณสมบัติความเข้ากันได้ก็ตาม

การสร้างเลขสุ่ม

ส่วนหัว<stdlib.h>( <cstdlib>ใน C++) กำหนดฟังก์ชันหลายอย่างที่สามารถใช้สำหรับการสร้างตัวเลขสุ่มทางสถิติได้[ 6 ]

การทำงาน คำอธิบาย
randสร้างตัวเลขสุ่มเทียมระหว่าง 0 ถึง 0 (รวมทั้ง 0 และRAND_MAX0 ด้วย)
srandเริ่มต้นตัวสร้างเลขสุ่มเทียม
arc4randomสร้างเลขสุ่มเทียมระหว่าง 0 ถึงUINT32_MAXn โดยปกติจะใช้อัลกอริทึมที่ดีกว่าrand
arc4random_uniformสร้างตัวเลขสุ่มเทียมระหว่าง 0 ถึงค่าสูงสุด
arc4random_bufเติมบัฟเฟอร์ด้วยบิตสตรีมแบบสุ่มเทียม
arc4random_stirเริ่มต้นใช้งาน ตัวสร้างเลขสุ่มเทียม

ตระกูลarc4randomของฟังก์ชันเลขสุ่มไม่ได้ถูกกำหนดไว้ในมาตรฐาน POSIX แต่พบได้ในlibcการใช้งานทั่วไปบางอย่าง เดิมทีคำนี้หมายถึงตัวสร้างคีย์สตรีมของเวอร์ชันที่รั่วไหลของรหัสRC4 (จึงเป็นที่มาของคำว่า " RC4 ที่ถูกกล่าวหา") แต่หลังจากนั้นได้มีการนำอัลกอริธึมอื่น ๆ ซึ่งโดยปกติมาจากรหัสอื่น ๆ เช่นChaCha20มาใช้แทน โดยใช้ชื่อเดียวกัน

คุณภาพของการสุ่มจากrandมักจะอ่อนเกินไปจนไม่อาจถือได้ว่าเป็นการสุ่มทางสถิติ และจำเป็นต้องมีการกำหนดค่าเริ่มต้นอย่างชัดเจน โดยทั่วไปแล้วแนะนำให้ใช้arc4randomแทนเมื่อrandเป็นไปได้ ไลบรารี C บางตัวใช้การสุ่มแบบนี้randภายในarc4random_uniformอยู่แล้ว

ฟังก์ชันพิเศษ

ตั้งแต่C++17 เป็นต้นไป C++ ได้นำฟังก์ชันพิเศษ มาใส่ ไว้ในไฟล์<cmath>เฮดเดอร์

การทำงาน คำอธิบาย
assoc_laguerreคำนวณพหุนาม Laguerre ที่เกี่ยวข้อง
assoc_legendreคำนวณพหุนามเลอจองเดอร์ที่เกี่ยวข้อง
betaคำนวณฟังก์ชันเบต้า
comp_ellint_1คำนวณอินทิกรัลเชิงวงรีสมบูรณ์ชนิดแรก
comp_ellint_2คำนวณอินทิกรัลเชิงวงรีสมบูรณ์ชนิดที่สอง
comp_ellint_3คำนวณอินทิกรัลเชิงวงรีสมบูรณ์ชนิดที่สาม
cyl_bessel_iคำนวณฟังก์ชันเบสเซลทรงกระบอกดัดแปลงปกติ
cyl_bessel_jคำนวณฟังก์ชันเบสเซลทรงกระบอกชนิดแรก
cyl_bessel_kคำนวณฟังก์ชันเบสเซลทรงกระบอกดัดแปลงที่ไม่สม่ำเสมอ
cyl_neumannคำนวณ ฟังก์ชัน Neumann ทรงกระบอก
ellint_1คำนวณอินทิกรัลเชิงวงรีไม่สมบูรณ์ชนิดแรก
ellint_2คำนวณอินทิกรัลเชิงวงรีไม่สมบูรณ์ชนิดที่สอง
ellint_3คำนวณอินทิกรัลเชิงวงรีไม่สมบูรณ์ชนิดที่สาม
expintคำนวณอินทิกรัลเลขชี้กำลัง
hermiteคำนวณพหุนามเฮอร์ไมต์
legendreคำนวณพหุนามเลอจองเดอร์
laguerreคำนวณพหุนามลากูร์
riemann_zetaคำนวณฟังก์ชันซีตาของรีมันน์
sph_besselคำนวณฟังก์ชันเบสเซลทรงกลมชนิดแรก
sph_legendreคำนวณฟังก์ชันเลอจองเดอร์ที่เกี่ยวข้องทรงกลม
sph_neumannคำนวณฟังก์ชันนอยมันน์ทรงกลม

การนำไปใช้

ภายใต้ระบบPOSIX เช่น LinuxและBSDฟังก์ชันทางคณิตศาสตร์ (ตามที่ประกาศไว้ในไฟล์ `.json` <math.h>) จะถูกรวมไว้แยกต่างหากในไลบรารีทางคณิตศาสตร์ดังนั้น หากมีการใช้ฟังก์ชันเหล่านั้น ลิงเกอร์จะต้องได้รับคำสั่ง `linker` มีการใช้งานหลายรูปแบบ รวมถึง: libm-lmlibm

ตัวอย่างการใช้งานที่ไม่จำเป็นต้องใช้ชื่อเฉพาะlibmได้แก่:

  • รูทีนทางคณิตศาสตร์ที่ปรับแต่งแล้วของARM
  • GCE-Math คือเวอร์ชันของฟังก์ชันทางคณิตศาสตร์ของ C/C++ ที่เขียนขึ้นสำหรับ C++ constexpr(การคำนวณในขั้นตอนการคอมไพล์)
  • CORE-MATHปัดเศษอย่างถูกต้องสำหรับความแม่นยำเดี่ยวและคู่
  • ไลบรารีคณิตศาสตร์ SIMD (เวกเตอร์) ประกอบด้วยSLEEF , Yeppp! เก็บถาวรเมื่อวันที่ 14 กรกฎาคม 2020 ที่Wayback Machineและ VCL ของ Agner Fogรวมถึงไลบรารีแบบปิดแหล่งที่มาอีกจำนวนหนึ่ง เช่น SVML และ DirectXMath [ 9 ]

ดูเพิ่มเติม

  • math.h: การประกาศทางคณิตศาสตร์ – เอกสารอ้างอิงคำจำกัดความพื้นฐาน, ข้อกำหนด UNIX เดียว , เวอร์ชัน 5 จากThe Open Group
  • เอกสารอ้างอิงภาษาซีสำหรับฟังก์ชันทางคณิตศาสตร์
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=C_mathematical_functions&oldid=1338273485#fenv.h "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ฟังก์ชันทางคณิตศาสตร์ C

การดำเนินการทางคณิตศาสตร์ของภาษา Cคือกลุ่มของฟังก์ชันในไลบรารีมาตรฐานของภาษาการเขียนโปรแกรม C ที่ใช้ฟังก์ชันทางคณิตศาสตร์พื้นฐาน มาตรฐาน C ที่แตกต่างกันมีชุดฟังก์ชันที่แตกต่างกัน

ภาพรวมของฟังก์ชันต่างๆ

ฟังก์ชันทางคณิตศาสตร์ส่วนใหญ่ที่ใช้ ตัวเลขทศนิยม จะถูกกำหนดไว้ใน ไฟล์เฮดเดอร์ ` .php` (ใน C++) ส่วนฟังก์ชันที่ทำงานกับ จำนวนเต็ม เช่น abs `flow`, labs ` div flow`, `flow` และ `flow` จะถูกกำหนดไว้ใน ไฟล์เฮดเดอร์ `.php` ( ใน C++) ldiv แทน

สภาพแวดล้อมจุดลอยตัว

C99 เพิ่มฟังก์ชันและประเภทต่างๆ หลายอย่างสำหรับการควบคุมสภาพแวดล้อมจุดลอยตัวแบบละเอียด [ 3 ] ฟังก์ชันเหล่านี้สามารถใช้เพื่อควบคุมการตั้งค่าต่างๆ ที่ส่งผลต่อการคำนวณจุดลอยตัว เช่น โหมดการปัดเศษ เงื่อนไขที่ทำให้เกิดข้อยกเว้น เมื่อตัวเลขถูกล้างเป็นศูนย์ เป็นต้น...

จำนวนเชิงซ้อน

C99 เพิ่ม _Complex คีย์เวิร์ดใหม่ (และ complex มาโครอำนวยความสะดวก ซึ่งใช้ได้เฉพาะเมื่อ มีการรวมเฮดเดอร์ไว้เท่านั้น) ที่ให้การสนับสนุนจำนวนเชิงซ้อน ชนิดข้อมูลจุดลอยตัวใดๆ ก็สามารถแก้ไขได้ด้วย `completion` complex และจะถูกกำหนดเป็นคู่ของจำนวนจุดลอยตัว...