sprintf () kesecek ve x ondalık basamağa bir float yuvarlak değil mi?

1 Cevap php

Bir golf handikap farkı hesaplarken yuvarlama olmadan 1 ondalık yere cevap kesecek gerekiyor. Hiçbir fikrim yok ama neden ...

Ben mySQL) (kesecek kullanarak bunu nasıl biliyor

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

sprintf () bu yapabileceğini ama ben merak ediyorum? Ben bir float ondalık çalışmak bilmek tek yolu ...

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

1 Cevap

Bu hangi dil? O C veya türevlerinden biri varsayarsak, ve her zaman tam olarak bir ondalık yer istiyorum varsayarak, ve değerleri her zaman negatif olmayan varsayarak, bunu yapabilirsiniz:

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

Daha iyi bir yolu var mı? Muhtemelen. Bu akla gelen sadece budur.