C言語 整数と小数の分割結合 指数と仮数の分割 - math.h - [ modef, frexp, ldexp ]
2008.09.06 Saturday | by LRESULT
浮動小数点の整数部と小数部の分割は、modf()を使います。
指数部と仮数部の分割には、frexp()、
指数と仮数から、浮動小数点を求めるには、ldexp()を使います。
書式 | double modf( double x, double *p ) |
---|---|
機能 | 浮動小数点を、整数部と小数部に分割する |
引数 | double x : 元となる浮動小数点値 double *p : 分割された整数部を格納 |
戻り値 | 分割された小数部を返します。 |
書式 | double frexp( double x, double *p ) |
---|---|
機能 | 浮動小数点を、指数部と仮数部に分割する |
引数 | double x : 元となる浮動小数点値 double *p : 分割された指数部を格納 |
戻り値 | 分割された仮数部を返します。 |
書式 | double ldexp( double x, double n ) |
---|---|
機能 | 仮数と指数から、浮動小数点値を求める |
引数 | double x : 仮数 double n : 指数 |
戻り値 | x仮数と n指数からの浮動小数点値 |
浮動小数点「6.54321」を整数部と小数部に分割します。 |
---|
#include <stdio.h> #include <math.h> int main(void) { double x = 6.54321; double a, b; b = modf( x, &a ); printf( "浮動小数点x=%f¥n", x ); printf( "整数部=%f 小数部=%f¥n", a, b ); return 0; } |
浮動小数点x=6.543210 整数部=6.000000 小数部=0.543210 |
---|
と、きちんと分割できましたね。 |