2011-06-15 19 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; 
相关问题