c語言浮點數(shù)四舍五入 求教c語言float類型數(shù)據(jù)四舍五入問題如何實現(xiàn)?
求教c語言float類型數(shù)據(jù)四舍五入問題如何實現(xiàn)?假設您需要將小數(shù)點后的兩位四舍五入,并使用integer的特性截斷小數(shù)點:float a=3.1415926,bintcb=AB*=100//b=31
求教c語言float類型數(shù)據(jù)四舍五入問題如何實現(xiàn)?
假設您需要將小數(shù)點后的兩位四舍五入,并使用integer的特性截斷小數(shù)點:float a=3.1415926,bintcb=AB*=100//b=314.15926b=0.5//round the single place C=BB=C//use integer variable assignment截斷小數(shù)點后的數(shù)據(jù)C=314,B=314.0b/=100//恢復原來的小數(shù)點位置B=3.14,只需寫如下:B=(int)(a*100 0.5)/100F
示例說明:
讓float x int y有y=(int)(x 0.5)>(int)x?(int)x 1:(int)x。在上述操作之后,Y的值是對x進行舍入的結果。它是通過舍入操作的截斷來實現(xiàn)的。
例如:int a=0.75,四舍五入后分配給a的值為0,小數(shù)點后的值被截斷。
如果要對整數(shù)進行四舍五入,則可以:a=(int)(0.750.5)四舍五入結果與數(shù)學中的四舍五入結果一致,均為1;
如果要對小數(shù)點進行四舍五入,則可以進行以下計算:
要將小數(shù)點保留在兩位小數(shù)后,即,將兩位小數(shù)點后的小數(shù)點進行四舍五入,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,然后用截斷值運算進行四舍五入,75.60.5=76.1進行四舍五入并等于76,然后除以100得到結果:0.76
非常簡單,如果你有一個浮點變量a,它的值是1.23456,你只想保留三位小數(shù),也就是說,你想得到1.235,只需要做:
a=(int)(1000.0*a 0.5)/1000.0。如果要保留四位小數(shù),請將1000改為10000,依此類推。