2011-06-15 67 views

回答

3

附上math.h頭文件,並做到這一點:

float f; 
f = 2.3678; 
f = floor(f * 100)/100; 
// f = 2.36 
+1

從技術上講,該數字不是2.36,它是2.359999999999999875655021241982467472553253173828125。真相。 – 2011-06-15 02:00:25

+0

@Chris:我可以做的事情不多:) – Ryan 2011-06-15 02:02:43

+0

對。我的觀點是,OP的問題不能用浮點數來回答。 – 2011-06-15 02:04:04

0
printf("%.2f", 2.3678); /* prints 2.37 */ 
+0

我不需要四捨五入我的價值我必須忽略小數點後兩位的所有其他值 – ratty 2011-06-15 02:02:42

+0

@ratty:你想要捨去嗎?然後使用minitech的方法:'printf(「%。2f」,floor(2.3678 * 100)/ 100)'。 – 2011-06-15 02:03:43

+0

這很危險。看看如果使用「floor(2.36 * 100)/ 100」會發生什麼......(根據您自己的意見) – 2011-06-15 02:16:59

0

試試這個:

f=f*100; 
f=(int)f; 
f=f/100;