C++中沒有直接的round函數(shù),需要自己建立,可以參考以下的代碼:
站在用戶的角度思考問題,與客戶深入溝通,找到鄂爾多斯網(wǎng)站設(shè)計與鄂爾多斯網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鄂爾多斯地區(qū)。
double?round(double?val)
{
return?(val?0.0)???floor(val+?0.5)?:?ceil(val-?0.5);
}
C語言中round函數(shù)的作用:四舍五入到最鄰近的整數(shù)。
擴展資料:
round函數(shù)的詳細介紹
在 VB,VBScript,C#,J#,T-SQL 中 Round 函數(shù)都是采用 Banker's rounding(銀行家舍入)算法,即四舍六入五取偶。事實上這也是 IEEE 規(guī)定的舍入標準。因此所有符合 IEEE 標準的語言都應(yīng)該是采用這一算法的。
為了避免四舍五入規(guī)則造成的結(jié)果偏高,誤差偏大的現(xiàn)象出現(xiàn),一般采用四舍六入五留雙規(guī)則(Banker's Rounding)。
準確而言,四舍六入五留雙應(yīng)稱作“四舍六入,逢五無后則留雙”,如此就可以完全覆蓋此規(guī)則的詳情。
參考資料來源:百度百科-round (函數(shù))
itoa是廣泛應(yīng)用的非標準C語言擴展函數(shù)。由于它不是標準C語言函數(shù),所以不能在所有的編譯器中使
用。但是,大多數(shù)的編譯器(如Windows上的)通常在頭文件中包含這個函數(shù)。在中與之有相反功能的函數(shù)是atoi。功能:把一整數(shù)轉(zhuǎn)換為字符串。
用法
char
*itoa(int
value,
char
*string,
int
radix);
頭文件:
程序例:
#include
#include
int
main()
{
int
number
=
123456;
char
string[25];
itoa(number,
string,
10);
printf("integer
=
%d
string
=
%s\n",
number,
string);
return
0;
}
/*
實現(xiàn)itoa函數(shù)的源代碼
*/
char
*myitoa(int
num,char
*str,int
radix)
{
/*
索引表
*/
char
index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned
unum;
/*
中間變量
*
int
i=0,j,k;
/*
確定unum的值
*/
if(radix==10num0)
/*
十進制負數(shù)
*/
{
unum=(unsigned)-num;
str[i++]='-';
}
else
unum=(unsigned)num;
/*
其他情況
*/
/*
逆序
*/
do
{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/*
轉(zhuǎn)換
*/
if(str[0]=='-')
k=1;
/*
十進制負數(shù)
*/
else
k=0;
/*
將原來的“/2”改為“/2.0”,保證當num在16~255之間,radix等于16時,也能得到正確結(jié)果
*/
for(j=k;j=(i-1)/2.0+k;j++)
{
num=str[j];
str[j]=str[i-j-1+k];
str[i-j-1+k]=num;
}
return
str;
}
itoa的第三個參數(shù)用于將數(shù)字轉(zhuǎn)換成不同的進制。舉個例子:
#include
#include
int
main(void)
{
int
number
=
12345;
char
string[25];
itoa(number,
string,
10);
//按十進制轉(zhuǎn)換
printf("integer
=
%d
string
=
%s\n",
number,
string);
itoa(number,
string,
16);
//按16進制轉(zhuǎn)換
printf("integer
=
%d
string
=
%s\n",
number,
string);
return
0;
}
輸出結(jié)果:
integer
=
12345
string
=
12345
--說明12345的十進制表示就是12345
integer
=
12345
string
=
3039
——說明12345的十六進制表示是0x3039
但是要注意,itoa并不是一個標準的C函數(shù),它是Windows特有的,如果要寫跨平臺的程序,請用sprintf。
用幾進制表示吧:)
MSDN的例子
Example
/*
ITOA.C:
This
program
converts
integers
of
various
*
sizes
to
strings
in
various
radixes.
*/
#include
#include
void
main(
void
)
{
char
buffer[20];
int
i
=
3445;
long
l
=
-344115L;
unsigned
long
ul
=
1234567890UL;
_itoa(
i,
buffer,
10
);
printf(
"String
of
integer
%d
(radix
10):
%s\n",
i,
buffer
);
_itoa(
i,
buffer,
16
);
printf(
"String
of
integer
%d
(radix
16):
0x%s\n",
i,
buffer
);
_itoa(
i,
buffer,
2
);
printf(
"String
of
integer
%d
(radix
2):
%s\n",
i,
buffer
);
_ltoa(
l,
buffer,
16
);
printf(
"String
of
long
int
%ld
(radix
16):
0x%s\n",
l,
buffer
);
_ultoa(
ul,
buffer,
16
);
printf(
"String
of
unsigned
long
%lu
(radix
16):
0x%s\n",
ul,
buffer
);
}
Output
String
of
integer
3445
(radix
10):
3445
String
of
integer
3445
(radix
16):
0xd75
String
of
integer
3445
(radix
2):
110101110101
String
of
long
int
-344115
(radix
16):
0xfffabfcd
String
of
unsigned
long
1234567890
(radix
16):
0x499602d2
指定要轉(zhuǎn)換的進制的基數(shù),其值好象在1--36之間都可以
這個不是C標準庫中的函數(shù),而是Windows平臺下擴展的,標準庫中有sprintf,功能比這個更強,用法跟printf類似:
char
str[255];
sprintf(str,
"%x",
100);
//將100轉(zhuǎn)為16進制表示的字符串。
C語言里itoa函數(shù)的功能是把一個整數(shù)轉(zhuǎn)換為字符串。
用法:
itoa(i ,num ,10 );
i ---- 需要轉(zhuǎn)換成字符串的數(shù)字
num ---- 轉(zhuǎn)換后保存字符串的變量
10 ---- 轉(zhuǎn)換數(shù)字的基數(shù)(即進制)。10就是說按10進制轉(zhuǎn)換數(shù)字。還可以是2,8,16等等你喜歡的進制類型
返回值:指向num這個字符串的指針
擴展資料
使用itoa函數(shù)注意事項:
itoa() 函數(shù)有3個參數(shù):第一個參數(shù)是要轉(zhuǎn)換的數(shù)字,第二個參數(shù)是要寫入轉(zhuǎn)換結(jié)果的目標字符串,第三個參數(shù)是轉(zhuǎn)移數(shù)字時所用的基數(shù)(進制)。在上例中,轉(zhuǎn)換基數(shù)為10,就意味著以10為轉(zhuǎn)換進制。10:十進制;2:二進制及其他進制。
itoa 并不是一個標準的C函數(shù),它是Windows特有的,如果要寫跨平臺的程序,請用sprintf。
標準庫中有sprintf,功能比這個更強,用法跟printf類似:
char str[255];
sprintf(str, "%x", 100); //將100轉(zhuǎn)為16進制表示的字符串。
參考資料來源:百度百科--itoa