Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sprintf:n kanssa apua

Sivun loppuun

Short Php [18.07.2008 16:40:33]

#

Kun sprintf- funktiolla on mahdollista lisätä ne nollat perään jos on tarpeeksi vähän numeroita, onko sillä mahdollista tehä näin: Oletetaan että numerona on 1.3 (tarkoittaa 1,3 miljoonaa) vaikka se voisi olla myös esim 500000 (eli viisisataatuhatta kirjaimilla) Tarkoituksena olisi saada tuosta 1.3:sta otettua pisteen pois (sen voi myös poistaa myöhemmin joten koodin ei tarvitse kuin lisätä ne nollat) ja lisättyä perään viisi nollaa (joten jos numero olisi 13.3 lisättäisiin silti viisi nolla, mutta jos numero olisi 1.13, lisättäisiin vain neljä nollaa). Jos tämä ei ole mahdollista niin käytän omia viritelmiä, mutta tämä saattaisia pienentää koodin määrää.

tsuriga [18.07.2008 17:08:40]

#

str_pad( str_replace( '.', '', $num ), 7, '0' )

punppis [19.07.2008 01:50:53]

#

Eikös helpoin olisi vain kertoa ne luvut?

$luku = 1.3;
$miljoonissa = $luku * 1000000; // 1,300,000

Short Php [19.07.2008 11:05:05]

#

Modaamisella sain toimimaan:

if (ereg("[.]", $num)) {
	return str_pad( str_replace( '.', '', $num ), 7, '0' );
}
else {
	return $num;
}

Lebe80 [19.07.2008 11:39:05]

#

ja siis kertomalla et saanu? ja siihen sit olis näyttäny esim. number_formattia?

Short Php [19.07.2008 12:41:54]

#

Tuokin toimii ^^

Pollapoju [19.07.2008 12:44:03]

#

*1000000 on tähän mennessä paras idea.

Lebe80 [19.07.2008 13:12:41]

#

the dailywtf

Metabolix [19.07.2008 14:36:42]

#

<?
if (strpos($luku, '.') !== false) {
  $luku = 1000000 * $luku;
}
?>

Oma koodisihan ei toimi, esim. 11.1 ja 1.11 tuottavat nähdäkseni saman luvun.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta