2009-11-13 40 views
1

当计算高尔夫障碍差分时,应该将回答截断为1位小数,而不舍入。不知道为什么,但...sprintf()截断并不将浮点数舍入到x的小数位?

我知道如何在MySQL中

SELECT TRUNCATE(2.365, 1); 
// outputs 2.3 

做到这一点使用TRUNCATE(),但我想知道如果sprintf的()能做到这一点?我知道在float中使用小数位的唯一方法是...

echo sprintf("%.1f", 2.365); 
// outputs 2.4 

回答

7

这是什么语言?假设这是C或它的衍生物之一,并假设你总是希望只有一个小数位,并假设您的值总是非负的,你可以这样做:

float val = 12.3456; 
val = floor(val*10.0)/10.0; 
sprintf("%.1f", val); 

有没有更好的办法?大概。这正是想到的。

+0

谢谢!适用于我的PHP! – jerrygarciuh 2009-11-13 23:56:35

+1

在PHP中'$ val = 12.3456; $ val = floor($ val,1); $ val = sprintf(“%。1f”,$ val);' – 2013-05-08 11:48:28

相关问题