Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Desimaaliongelma

Sivun loppuun

Vasta_alkaja [25.02.2007 00:08:47]

#

Miten tallennetaa tietokantaa decimaali lukuja tai muuta. Tarkoituksena olisi tallentaa

esimerkiksi 5.50€ (ilman euronmerkkiä)

Tallennan sen normaalisi ja tietokannassa on decimaaliluku arvona. Mutta tieto ei mene sinne decimaalilukuna.

SysRq868 [25.02.2007 00:25:42]

#

Luulisin sen olevan desimaaliluku suomeksi. Arvaan myös, että kyseessä on PHP MySQL:n kanssa.

Itselläni se menee vallan loistavasti VARCHAR -tyyppiseen soluun. Tiedä häntä onko paras keino (muuttujan muuttamisessa numeroksi voi olla ongelma), joku überimpi saa sitten spekuloida sekunnin tuhannesosiansa...

Blaze [25.02.2007 00:31:54]

#

Sopivin saraketyyppi taitaa kuitenkin olla FLOAT...

SysRq868 [25.02.2007 00:34:23]

#

Miksei DECIMAL(5,2)?

Vasta_alkaja [25.02.2007 00:49:40]

#

Floatillla sain toimimaan.. Laittoi sillekkin arvoksi 10,2 niin ei näytäänyt mitään tämmöistä: 3.124123521235

mutta tuolla DECIMAL tyypillä se ei onnistunut.
Tässäkin on kyllä se huono puoli, että pakotetaan käyttämään pistettä, sillä pilkulla se ei erottele lukuja vaan laittaa suoraan arvoksi esimerkiksi 5.00. Olisiko tähän helloa kikkaa, eli siis jos käyttäjä laittaa , niin se muunnetaan automaattisesti pisteeksi.

sqwiik [25.02.2007 01:19:21]

#

Helpohko apuneuvo olisi muuttaa annettu luku tekstiksi (ellei se jo valmiiksi ole) ja käyttämällä funktiota str_spelace.

Antti Laaksonen [25.02.2007 19:54:36]

#

Muutoksen voi hoitaa PHP:ssä vaikka näin:

$luku = (float)str_replace(",", ".", $luku);

Nyt luku on loppujen lopuksi oikeassa muodossa riippumatta siitä, käytettiinkö desimaalierottimena pilkkua vai pistettä. Tämän muutoksen jälkeen luku on valmis tietokantaan tallennettavaksi.

Vasta_alkaja [26.02.2007 10:54:50]

#

Kiitoksia, nyt toimii niinkuin pitääkin.


Sivun alkuun

Vastaus

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

Tietoa sivustosta