Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: problema FLOAT MYSQL

  1. #1
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837

    problema FLOAT MYSQL

    Buogiorno a tutti, spero di spiegare al meglio il mio problema.
    Praticamente ho creato un form da compilare con dei prodotti da selezionare, qunado un clienti nel campo di testo digita il numero di prodotti sotto viene calcolato il relativo prezzo (ho usato javascript) il prezzo è così scritto 1148,16 . Ora io altre a ricevere l'ordine tramite email lo devo anche salvare sul database. Quindi ho creato database e campi, di cui la maggior parte sono campi FLOAT(5,2). Il problema è che quando il dato viene memorizzato è della seguente forma 1148,00. Praticamento non mi memorizza le cifre dopo la virgola.
    GRAZIE IN ANTICIPO

  2. #2
    prova ad usare il punto per separare i centesimi.
    In alternativa usa un campo INT usando i centesimi.
    ciao
    sergio

  3. #3
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    ciao Sergio ti ringrazio x la tua risposta, putroppo non posso usare il punto perchè lo uso x separare le migliaia dalle decine.
    Non ho capito invece l'altra soluzione con INT e i centesimi ?
    Ho provato ad usare anche DECIMAL xrò non va

  4. #4
    il prezzo nel database lo memorizzi come INT, esprimendolo in centesimi.

    Quando lo devi recuperare fai

    select ..., prezzo/100, ... from mia_tabella where ....;

    o usi format per formattartelo come vuoi.

    ciao
    sergio

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    ti ringrazio x la tua pazienza xrò quando memorizzo la cifra 2376,90 con il campo INT viene memorizzato solo la cifra 2376.
    Non se se sbaglio xrò questi risultati li sto vedendo direttamente nel campo di phmyadministrator.

  6. #6
    il fatto è che MySQL usa il punto come separatore per i decimali. Potresti usare la funzione FORMAT di MySQL per rappresentare il valore FLOAT con il punto come segue:

    $val = 1148.16;
    $sql = "INSERT INTO tabella(val) VALUES (FORMAT('$val', 2))"

    FORMAT scrive il valore di $val con due cifre decimali separate da una virgola, quindi scriverebbe 1148,16

  7. #7
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Grazie x la tua risposta.
    Io ho fatto come mi hai detto:
    questo è il totale dell'ordine 2520,66

    poi ho esguito la query
    Codice PHP:
    $query "INSERT INTO ordine (rotoli,vinile,mesh,banner,altezza,colla,tessuto,dyegiallo,dyemagenta,dyeciano,dyenero,dyelightm ,
    dyelightc ,
    acquagiallo ,
    acquamagenta ,
    acquaciano ,
    acquanero ,
    acqualightm ,
    acqualightc ,
    solgiallo ,
    solmagenta ,
    solciano ,
    solnero ,
    ecosolgiallo ,
    ecosolmagenta ,
    ecosolciano ,
    ecosolnero ,
    subgiallo ,
    submagenta ,
    subciano ,
    subnero ,
    liquido ,
    tubo ,
    wiper ,
    damper ,
    maxidamperg ,
    maxidamperp ,
    cartucce ,
    gommini ,
    pompa ,
    testa ,
    totaletrasporto ,
    modpagamento ,
    costopagamento ,
    totale ,
    totaleiva ,
    spedizionerotoli ,
    spedizioneinchiostri)
    VALUES ('
    $rotoli','$vinile','$mesh','$banner','$altezza','$colla','$tessuto','$dyegiallo','$dyemagenta','$dyeciano','$dyenero','$dyelightm','$dyelightc',
    '
    $acquagiallo',
    '
    $acquamagenta',
    '
    $acquaciano',
    '
    $acquanero',
    '
    $acqualightm',
    '
    $acqualightc',
    '
    $solgiallo',
    '
    $solmagenta',
    '
    $solciano',
    '
    $solnero',
    '
    $ecosolgiallo',
    '
    $ecosolmagenta',
    '
    $ecosolciano',
    '
    $ecosolnero',
    '
    $subgiallo',
    '
    $submagenta',
    '
    $subciano',
    '
    $subnero',
    '
    $liquido',
    '
    $tubo',
    '
    $wiper',
    '
    $damper',
    '
    $maxidamperg',
    '
    $maxidamperp',
    '
    $cartucce',
    '
    $gommini',
    '
    $pompa',
    '
    $testa',
    '
    $totaletrasporto',
    '
    $modpagamento',
    '
    $costopagamento',
    '
    $totale',
    FORMAT('
    $totaleiva',2),
    '
    $spedizionerotoli',
    '
    $spedizioneinchiostri')"
    il valore visualizzato nel campo totaleiva FLOAT(5,2) è 2.00 HELP ME!!

  8. #8
    Originariamente inviato da mariox
    ti ringrazio x la tua pazienza xrò quando memorizzo la cifra 2376,90 con il campo INT viene memorizzato solo la cifra 2376.
    Non se se sbaglio xrò questi risultati li sto vedendo direttamente nel campo di phmyadministrator.
    nel campo INT devi memorizzare i centesimi, quindi il numero 237690 .
    Poi lo recuperi con

    select ..., prezzo/100 as prezzo, ....
    oppure con format.
    ciao
    sergio

  9. #9
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    l'intera cifra la prelevo da un'unica variabile.
    quando salvo la cifra 2516,85 nel campo INT mi appare la seguente cifra 2516
    I centesimi non li memorizza.

  10. #10
    non risesci a cambiare la virgola in punto con javascript .

    var prezzo="2376,90", // come stringa
    prezzo.repace(",", ".");

    ciao
    sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.