Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

data conversion float&decimal

[es] :: .NET :: data conversion float&decimal

[ Pregleda: 2270 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

west_herc
west_herc

Član broj: 103549
Poruke: 160
*.tel.net.ba.



Profil

icon data conversion float&decimal28.12.2006. u 15:41 - pre 187 meseci
Praveći svoje tablice stavljao sam neke retke kao FLOAT tip. E sad, kad sam pravio aplikaciju i spremao se da nešto unesem u tu tablicu radio sam CASTING ali ne u SQL upitu nego standardno u C# koodu, tj ako imam textBox1 u kojeg unosim neku vrijednost 12,33 ja sam radio casting na slijedeci nacin:

float vrijednost = (float)Convert.ToDouble(textBox1.text);

E sad, radi to, ali desi mi se sljedeći problem. Kad ja to unesem u bazu se automatski zapiše ova vrijednost 12,32000000000000000087767614265. I sad kad radim sa tim podatkom nemogu da uradim insert jer mi javi da nije dobar tip podatka.

Pitanje je: Što mi preporučujete, da li da koristim decimal tip podatka pri definiranju tablice ili nešto drugo?

Inače radim sa C# i MS SQL.
 
Odgovor na temu

bobanM
Boban Mikšin
Levi9 Global Sourcing
Novi Sad

Član broj: 61491
Poruke: 39
*.static.sbb.co.yu.



Profil

icon Re: data conversion float&decimal28.12.2006. u 15:55 - pre 187 meseci
Pozdrav,

mozda ce ti proci sa

Code:

float vrednost=float.Parse(textBox1.Text);

nije lepo da budem lud a da to ne znam
 
Odgovor na temu

west_herc
west_herc

Član broj: 103549
Poruke: 160
*.tel.net.ba.



Profil

icon Re: data conversion float&decimal28.12.2006. u 16:26 - pre 187 meseci
nažalost ne pomaže :)
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: data conversion float&decimal28.12.2006. u 17:49 - pre 187 meseci
Koristi parametre u tvom insert sql-u.


Code:


string insets = "INSERT INTO neka_tabela (tvojafloatkolona) VALUES @tvojafloatkolona";
imeTvojeInsertComande.CommandText = inserts;
SqlParameter p = new SqlParameter("tvojafloatkolona", DbTypes.Single);
p.Value = float.Parse(textbox.Text);

imeTvojeInsertComande.Parameters.Add(p);




i zatim izvrsavas tvoj upit. Proveri tacnu sintaxu, kucao sam iz glave.

Pozdrav.
RTFM
 
Odgovor na temu

west_herc
west_herc

Član broj: 103549
Poruke: 160
*.tel.net.ba.



Profil

icon Re: data conversion float&decimal28.12.2006. u 21:02 - pre 187 meseci
Nažalost isti slučaj, samo što sad kad unesem 12,3 imam vrijednost jako blizu 13 a kod (float)convert.todouble malo više od 13.

Da li da koristim decimal tip umjesto float u mojoj tablici
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: data conversion float&decimal28.12.2006. u 21:13 - pre 187 meseci
Za sta ti treba ta kolona?
Sa decimal kolonom ce ti sigurno raditi ok.
Pozdrav!
RTFM
 
Odgovor na temu

bobanM
Boban Mikšin
Levi9 Global Sourcing
Novi Sad

Član broj: 61491
Poruke: 39
212.200.218.*



Profil

icon Re: data conversion float&decimal28.12.2006. u 22:34 - pre 187 meseci
Prikazi kod da vidimo u cemu je problem.
nije lepo da budem lud a da to ne znam
 
Odgovor na temu

west_herc
west_herc

Član broj: 103549
Poruke: 160
*.tel.net.ba.



Profil

icon Re: data conversion float&decimal29.12.2006. u 13:26 - pre 187 meseci
Pa evo šta sam sad radio. Stavio sam da mi je u tablici redak tipa REAL i radio sam konverziju koju sam gore napomenio i SAD RADI SVE OK tj zapisuje u bazu kako sam ja i htio.

Što se tiče prijašnjeg slučaja kad je zapisaivao Malo manje od primjerice 12,3 konkretno 12,299900009878165325 i to sa korištenjem (float)Convert.ToDouble ili malo više od 12,3 konkretno 12,3000000000009287367 i to sa korištenjem Float.Parse, ali sam u tablici imao FLOAT kod je sljedeći:

Što se koda tiče jednostavan je. Samo jedna tablica u bazi, dva textBoxa i jedan botun.


Code:

int i = Convert.ToInt32(textBox1.Text);
float j = (float)Convert.ToDecimal(textBox2.Text);

this.Validate();
this.table1TableAdapter1.Insert(i, j);
this.table1TableAdapter1.Dispose();


Jer sam radio sa datasetom i nisam pravio tablice ručno kao što nisam niti pravio SQL upite ručno, tj ono string upit="SELECT .... "; pa ona radio ExecuteQuery. E ja sam to zaobišao nego pisao upite u Query Builderu i koristio table adapter.

Još je zanimljivo kad sam uradio ono drop na formu da mi se sve samo generira, a u tablici imam FLOAT radi sve perfektno, ali čim ručno sa FLOAT u tablici ne radi.
 
Odgovor na temu

ismilovic
Ivan Smilović
Istra

Član broj: 63197
Poruke: 89
*.htnet.hr
Via: [es] mailing liste



Profil

icon Re: data conversion float&decimal30.12.2006. u 08:13 - pre 187 meseci
[aleksandarpopov]
> Sa decimal kolonom ce ti sigurno raditi ok.
Neću pretjerat ako kažem da se godinu dana mučim sa Decimal poljem u bazi, a
da ga nisam uspio savladat, pa sada odustajem od svega i polje kreiram kao
double precision.
Bio bi ti jako zahvalan kad bi rekao kako napravit Format i Parse
'cevent.Value' kod bindanja Decimal polja na TextBox, i kako napravit format
DataGrid kolone u data gridu.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: data conversion float&decimal30.12.2006. u 09:38 - pre 187 meseci
@ismilovic
Ne koristim databinding, vec sam upisujem/citam iz/u textboxove i iz datatabela. Napravio sam svoje nasledjene textboxove koji mi prikazuju vrednosti u zavisnosti od tipa podatka i drugih parametara koje ja zadam (naravno i prihvataju ih samo u ispravnom formatu za dati tip podatka), tako da sa time nemam problema. Datagridview ne koristim vec koristim listview za tabelarni prikaz, kod kojeg ja preuzimam kako ce mi koja kolona biti prikazana, koja je naravno read-only, izmene se rade na formi sa txtboxovima, a ne u tabelarnom prikazu. Ima malo vise koda ovako, ali ako koristis nasledjivanje moze elegantno da se resi.
Citat:
Bio bi ti jako zahvalan kad bi rekao kako napravit Format i Parse
'cevent.Value' kod bindanja Decimal polja na TextBox, i kako napravit format
DataGrid kolone u data gridu.

Ovo bas ne kontam, ali parse radim normalno sa
Code:
 decimal.Parse(nekistring)
a prikazivanje radim sa
Code:
              string   forDisplay = mojDecimalnibroj.ToString("N", nfi); 

gde mi je nfi NumberFormatInfo, za koji postavim i potreban broj decimala pre prikazivanja. Ja sa decimalnim poljima u bazi nisam imao nekih problema.
Pozdrav.
RTFM
 
Odgovor na temu

ismilovic
Ivan Smilović
Istra

Član broj: 63197
Poruke: 89
*.htnet.hr
Via: [es] mailing liste



Profil

icon Re: data conversion float&decimal31.12.2006. u 08:42 - pre 187 meseci
[aleksandarpopov]
> Ne koristim databinding, vec sam upisujem/citam iz/u textboxove i iz
> datatabela...
Ovo baš i ne razumijem, nije valjda da 'ručno' skupljaš podatke po formi da
bi ih upisao?
> izmene se rade na formi sa txtboxovima, a ne u tabelarnom prikazu...
Meni je neprihvatljivo da nemam edit kroz grid, preko toga upisujem brdo
dokumenata, kalkulacije fakture, natudžbe...
Ostaje pitanje nakon svih tih peripetija (koje sam i ja prošao) u čemu je
uopće prednost Decimal polja kad double ima zadovoljavajuću točnost.

svima Sretna nova 2007
Pozdrav.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: data conversion float&decimal01.01.2007. u 19:29 - pre 187 meseci
Srecna nova godina svima!
Da rucno kupim polja, ali to sam samo jednom napisao, negde gore u hijerarhiji mojih klasa, to samo koristim u nasledjenim klasama. Isto tako i za prikaz. Pa i ja koristim tabelarni prikaz za stavke dokumenata, doduse ne u gridu, ali izmene i dodavanje novih radim preko polja. Cifra zapisana kao decimal u bazi podataka npr 12.33 je u stvari zapisano kao string 12.33 a ne broj. Uvek ti je garantovano tako, kako si ti iz front enda prosledio. Za neke stvari ti treba double ili float, ali uglavnom u poslovnim apl. ti je decimal ok. Sve jedno, i sa double imas peripetija prilikom prikazivanja zar ne?
Pozdrav!

RTFM
 
Odgovor na temu

ismilovic
Ivan Smilović
Istra

Član broj: 63197
Poruke: 89
*.htnet.hr
Via: [es] mailing liste



Profil

icon Re: data conversion float&decimal03.01.2007. u 10:22 - pre 187 meseci
>Cifra zapisana kao decimal u bazi podataka npr 12.33 je u stvari zapisano
>kao string 12.33 a ne broj.
Kod mene (InterBase ili Firebird) decimal je kao int64 1233 a ne string
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: data conversion float&decimal03.01.2007. u 11:27 - pre 187 meseci
Ja sa Postgresql-om nisam imao tih problema. Ni sa MS Sql serverom ranije, koliko se secam. Za firebird nemam pojma. Preporuka je da se koristi decimal ili numeric za kolone kojima je potrebna "exact precision" - kao sto su novcane kolone. Odlutasmo od teme :)
Pozdrav.
RTFM
 
Odgovor na temu

[es] :: .NET :: data conversion float&decimal

[ Pregleda: 2270 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.