c語(yǔ)言浮點(diǎn)數(shù)四舍五入 求教c語(yǔ)言float類型數(shù)據(jù)四舍五入問(wèn)題如何實(shí)現(xiàn)?
求教c語(yǔ)言float類型數(shù)據(jù)四舍五入問(wèn)題如何實(shí)現(xiàn)?假設(shè)您需要將小數(shù)點(diǎn)后的兩位四舍五入,并使用integer的特性截?cái)嘈?shù)點(diǎn):float a=3.1415926,bintcb=AB*=100//b=31
求教c語(yǔ)言float類型數(shù)據(jù)四舍五入問(wèn)題如何實(shí)現(xiàn)?
假設(shè)您需要將小數(shù)點(diǎn)后的兩位四舍五入,并使用integer的特性截?cái)嘈?shù)點(diǎn):float a=3.1415926,bintcb=AB*=100//b=314.15926b=0.5//round the single place C=BB=C//use integer variable assignment截?cái)嘈?shù)點(diǎn)后的數(shù)據(jù)C=314,B=314.0b/=100//恢復(fù)原來(lái)的小數(shù)點(diǎn)位置B=3.14,只需寫(xiě)如下:B=(int)(a*100 0.5)/100F
示例說(shuō)明:
讓float x int y有y=(int)(x 0.5)>(int)x?(int)x 1:(int)x。在上述操作之后,Y的值是對(duì)x進(jìn)行舍入的結(jié)果。它是通過(guò)舍入操作的截?cái)鄟?lái)實(shí)現(xiàn)的。
例如:int a=0.75,四舍五入后分配給a的值為0,小數(shù)點(diǎn)后的值被截?cái)唷?/p>
如果要對(duì)整數(shù)進(jìn)行四舍五入,則可以:a=(int)(0.750.5)四舍五入結(jié)果與數(shù)學(xué)中的四舍五入結(jié)果一致,均為1;
如果要對(duì)小數(shù)點(diǎn)進(jìn)行四舍五入,則可以進(jìn)行以下計(jì)算:
要將小數(shù)點(diǎn)保留在兩位小數(shù)后,即,將兩位小數(shù)點(diǎn)后的小數(shù)點(diǎn)進(jìn)行四舍五入,0.756
float a=0.756,B int x B=a*100,B=0.5 x=B,B=x/100
操作如下:先用0.756乘100得到75.6,然后用截?cái)嘀颠\(yùn)算進(jìn)行四舍五入,75.60.5=76.1進(jìn)行四舍五入并等于76,然后除以100得到結(jié)果:0.76
非常簡(jiǎn)單,如果你有一個(gè)浮點(diǎn)變量a,它的值是1.23456,你只想保留三位小數(shù),也就是說(shuō),你想得到1.235,只需要做:
a=(int)(1000.0*a 0.5)/1000.0。如果要保留四位小數(shù),請(qǐng)將1000改為10000,依此類推。