Magazin MySQL float (Programare, Mysql)

1408786utilizator a intrebat.
a intrebat.

Încerc să salvez un float în baza de date MySQL ca zecimală(20,10). Dar nu cred că aceasta este o modalitate bună, deoarece atunci când încerc să salvez 2,14, va salva 2,1400000000.

Cel puțin acesta este mai bun decât float(20,10), deoarece acesta rotunjea greșit.Dar ce tip ar trebui să folosesc pentru a-l stoca ca 2.14? Nu pot să spun doar 20,2 pentru că uneori am de exemplu 34.2222291 ca valoare.

SOLUȚIE:double(20,10) a rezolvat problema.

Comentarii

  • Ce este în neregulă cu 2.14000000000000? –  > Por George.
  • Dacă am mai mult de 2 zecimale, utilizatorii vor ști că valoarea a fost calculată și nu măsurată. În momentul de față nu pot vedea dacă valoarea a fost calculată sau măsurată. –  > Por 1408786utilizator.
  • Nu uitați să adăugați soluția dvs. ca răspuns și să o marcați ca fiind acceptată. –  > Por Ilion.
  • Puteți accepta propriul răspuns în 2 zile… –  > Por 1408786user.
1 răspunsuri
Fabian Schmengler

Diferența dintre 2.14 și 2.1400000000 este doar o problemă de formatare a ieșirii (în orice limbaj pe care îl folosești pentru asta – dar este posibil chiar și cu MySQL dacă veți).

Așadar, dacă doriți exact valori zecimale exacte, DECIMAL(20,10) este calea de urmat. DOUBLE (virgulă mobilă de dublă precizie) are doar mai puține probleme de rotunjire decât FLOAT (virgulă mobilă de precizie unică), dar nu le elimină, deoarece este tot un tip de virgulă mobilă.

Comentarii

  • Îmi pare rău să văd acest răspuns neacceptat. Ați înțeles de ce DOUBLE nu rezolvați problema dumneavoastră, ci doar o ascunde pentru moment? Dacă ceva nu a fost clar, vă rog să-mi spuneți. Dar dacă pur și simplu nu-ți pasă, e în regulă și asta. –  > Por Fabian Schmengler.

Tags: