在C++中,modf()是用於數學計算的預定義函數。 math.h是各種數學函數所需的頭文件。該庫中所有可用的函數都將double作為參數,並返回double作為結果。
modf()函數將給定參數分為兩部分,一個是整數,另一個是小數。整數部分存儲在指針指向的內存地址中,該指針作為函數的第二個參數傳遞,小數部分由函數返回。
用法:
double modf(k, &p)
- k:這是將被分為兩部分的價值。
- p:它是指向斷開後k的整數部分的指針。
- 該函數返回k的分數值。
- 此函數不會引起任何特定錯誤。
參數:
返回:
錯誤:
- 如果傳遞的不是浮點數,雙精度數或整數,則返回類型錯誤。
// CPP program to demonstrate // exception of this function #include <bits/stdc++.h> using namespace std; int main() { // Take any value double p, fraction; string k = "5.06"; // Breaks k into two parts fraction = modf(k, &p); cout << "Integer Value = " << p << endl << "Fraction Value = " << fraction << endl; return 0; }
輸出:
prog.cpp:13:23:error:no matching function for call to 'modf(std::__cxx11::string&, double*)' fraction = modf(k, &p); ..... /usr/include/c++/5/cmath:395:3:note:candidate:float std::modf(float, float*) modf(float __x, float* __iptr)
異常與此函數相關聯:
Note: k and p must be of same data type.
例子:
- 傳遞double(float)值作為參數:
// CPP program to demonstrate // modf() function #include <bits/stdc++.h> using namespace std; int main() { // Take any value double k = 5.06, p, fraction; // Breaks k into two parts fraction = modf(k, &p); cout << "Integer Value = " << p << endl << "Fraction Value = " << fraction << endl; return 0; }
輸出
Integer Value = 5 Fraction Value = 0.06
- 傳遞整數值作為參數:
// CPP program to demonstrate // modf() function #include <bits/stdc++.h> using namespace std; int main() { // Taking positive value double k = 8, p, fraction; // Breaks k into two parts fraction = modf(k, &p); cout << k << " =>"; cout << "\tInteger Value = " << p << endl << "\tFraction Value = " << fraction << endl; // Taking negative value k = -8; fraction = modf(k, &p); cout << k << " =>"; cout << "\tInteger Value = " << p << endl << "\tFraction Value = " << fraction << endl; return 0; }
輸出
8 => Integer Value = 8 Fraction Value = 0 -8 => Integer Value = -8 Fraction Value = -0
注意:如上述代碼中,正值給出正輸出,負值給出負輸出。因此,小數和整數都與參數中給定值具有相同的符號。
相關用法
注:本文由純淨天空篩選整理自AKASH GUPTA 6大神的英文原創作品 modf() in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。