Autor Zpráva
ondrej16556
Profil
Dobrý deň,
mám premennú textového typu obsahujúcu číslo a k tomu by som chcel pripočítať 1.

Kód:
<?php
$rozdel = 01666666667;
$kon_des_2 = substr($rozdel, 0, 2);
$k = $kon_des_2+1;
echo $k;
?>


Ako by sa to dalo urobiť?
Nox
Profil
ondrej16556:
je ti jasné, že to $rozdel máš integer v osmičkové soustavě, že? (kvůli 0 na začátku)

jinak by to mělo jít prostě +1, případně přetypovat na integer a pak přičíst
(int)$cislo_v_textu
nebo
intval($cislo_v_text)
...intval() je pokud vím trochu tolerantnější a převede více možných reprezentací čísla, což může ale nemusí být žádoucí

vzhledem k tomuto a předešlým tématům by bylo dobré kdybys nám řekl o co se celkově pokoušíš, co je účel tady těch hrátek s číslama
ondrej16556
Profil
Nox:
1, Ďakujem, to mi pomohlo.
2, Pokúšam sa o vytvorenie browser hry ale databáza neberie desatinné čísla pri minútovom prepočte surovín,
tak som sa to pokúšal spraviť takto:

	$kondrevo = $tdrevo/60;// delí hodinový prepočet na minútový(hodinový je v tomto prípade 10)
	$rozdel = explode(".",$kondrevo); // funkcia rozdeľuje celé čísla od desatinných pri prepočte
		while($pocet < count($rozdel)) {
		if($pocet == 0): // keď je počet=0, zapisujú sa celé čísla
			$kon_k = $rozdel[$pocet]+$drevo;
			mysql_query("UPDATE mapa SET drevo=$kon_k WHERE narod=$narod AND zem=$zem");
		else: // inak desatinné
			$kon_des = substr($rozdel[$pocet], -2, 1);
			$kon_des_2 = substr($rozdel[$pocet], 0, 2);
			$k_des = substr($rozdel[$pocet], 0, 1);
			$k_des_2 = substr($rozdel[$pocet], -1, 2);
			if($kon_des == 5 || $kon_des == 6 || $kon_des == 7 || $kon_des == 8 || $kon_des == 9) {// zaokrúhľovanie na stotiny
// keď je číslo na mieste tisícin väčšie ako 4, tak sa zaokrúhli a pripočíta sa číslo 1
				$k = intval($kon_des_2);
				$k = $k+1;
				die($k."<br>".$kon_des_2."<br>".$rozdel[$pocet]); // skúšobný test, čo mi vypíše
			}/* od tade na tom ešte pracujem*/ if($k_des == 0 AND $k_des_2 == 1):
			/*$kon_d = $kon_des+$drevo_des;*/
			endif;
			mysql_query("UPDATE mapa SET drevo_des=$kon_d WHERE narod=$narod AND zem=$zem");
		endif;
		$pocet++;
	}
Alphard
Profil
ondrej16556:
ale databáza neberie desatinné čísla
A řekl jste jí, že s nimi chcete pracovat? Datové typy float, double a decimal.

Když se tak dívám na váš kód, znáte funkce jako round(), ceil(), floor()?
Možná byste měl začít něčím lehčím a více studovat.
Nox
Profil
ondrej16556:
co třeba http://cz.php.net/manual/en/function.floatval.php ?
možná http://cz.php.net/manual/en/function.strtr.php jestli by tam byl problém desetinná tečka X čárka
ondrej16556
Profil
Alphard:
A řekl jste jí, že s nimi chcete pracovat? Datové typy float, double a decimal.
Ďakujem, to mi veľmi pomohlo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0