2009-11-13 68 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

相關問題