pow関数


double pow(double x, double y)

xのy乗を返す。

コード

#include	<iostream>
#include	<cmath>

using namespace std;

//四捨五入する
double	dCalcRoundOff(double Beams, double dNum);
//指定の桁数で切り下げる。
double	dCalcRoundDown(double Beams, double dNum);
//指定の桁数で切り上げる。
double	dCalcRoundUp(double Beams, double dNum);
void	Func1(int num);


void main()
{

	Func1((int)100.5);
	
	cout << dCalcRoundOff(0.0, 100.5) << endl;

	cout << dCalcRoundDown(1.0, 105.0) << endl;
	cout << dCalcRoundDown(1.0, -104.0) << endl;
	
	cout << dCalcRoundUp(1.0, 105.0) << endl;
	cout << dCalcRoundUp(1.0, -104.0) << endl;

	return;	

}

//
void	Func1(int num)
{

	cout << num << endl;

	return;

}

//指定の桁数で切り上げる。
double dCalcRoundUp(double Beams, double dNum)	//Input
{

	static	double	dAns;
	
	if(dNum >= 0.0){
		dAns = (dNum) / (pow(10.0, Beams));
		
		int	Buff;
		Buff = (int)(dAns);
		if(dAns - (double)(Buff) == 0.0){
			;
		}else{
			dAns = dAns + 1;
		}

	}else{
		dAns = (dNum) / (pow(10.0, Beams));
	}

	dAns = (int)(dAns) * (pow(10.0, Beams));

	return dAns;

}

//指定の桁数で切り下げる。
double dCalcRoundDown(double Beams, double dNum)	//Input
{

	static	double	dAns;
	
	if(dNum >= 0.0){
		dAns = (dNum) / (pow(10.0, Beams));
	}else{
		dAns = (dNum) / (pow(10.0, Beams));

		int	Buff;
		Buff = (int)(dAns);
		if(dAns - (double)(Buff) == 0.0){
			;
		}else{
			dAns = dAns - 1;
		}

		/*
		負の数の場合
		-104 → -110
		負の数は、絶対値は大きくなる。
		*/
	}

	dAns = (int)(dAns) * (pow(10.0, Beams));

	return dAns;

}


//四捨五入する
double  dCalcRoundOff(double Beams, double dNum)	//Input
{

	static	double	dAns;
	
	//四捨五入を考慮する
	if(dNum >= 0.0){
		dNum = ((dNum) * (pow(10.0, Beams)) + 0.5);
		dNum = (int)(dNum);
	}else{
		dNum = ((dNum) * (pow(10.0, Beams)) - 0.5);
		dNum = (int)(dNum);
	}

	//printf("Num --> %f\n", dNum);

	dAns = (dNum) / (pow(10.0, Beams));

	//printf("Num --> %f\n", dNum);

	return dAns;
}
			


結果

100
101
100
-110
110
-100
			


<戻る>

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル