Bin*_*inu 45 c floating-point numbers decimal
我们如何提取浮点数的小数部分并将小数部分和整数部分存储到两个单独的整数变量中?
Joh*_*itb 85
你使用的modf
功能:
double integral;
double fractional = modf(some_double, &integral);
Run Code Online (Sandbox Code Playgroud)
您也可以将其强制转换为整数,但要注意您可能会溢出整数.结果是不可预测的.
Chr*_*nch 44
试试这个:
int main() {
double num = 23.345;
int intpart = (int)num;
double decpart = num - intpart;
printf("Num = %f, intpart = %d, decpart = %f\n", num, intpart, decpart);
}
Run Code Online (Sandbox Code Playgroud)
对我来说,它产生:
Num = 23.345000, intpart = 23, decpart = 0.345000
Run Code Online (Sandbox Code Playgroud)
这似乎是你要求的.
Tre*_*ith 15
快速"坚果壳"最明显的答案似乎是:
#define N_DECIMAL_POINTS_PRECISION (1000) // n = 3. Three decimal points.
float f = 123.456;
int integerPart = (int)f;
int decimalPart = ((int)(f*N_DECIMAL_POINTS_PRECISION)%N_DECIMAL_POINTS_PRECISION);
Run Code Online (Sandbox Code Playgroud)
您可以通过更改N_DECIMAL_POINTS_PRECISION
以满足您的需要来更改所需的小数点数.