Problema decimali access asp.net

sabato 03 luglio 2010 - 13.11

gianlu29 Profilo | Junior Member

Il mio problema riguarda i decimali...ho provato in tutti i modi per far si che in un windows form venisse visualizzato un numero arrotondato a 2 decimali dopo la virgola....quali impostazioni mi consigliate di utilizzare su access(precisione doppia,intero, etc.)?e quali su asp.net(float, double, etc.)?

alx_81 Profilo | Guru

>Il mio problema riguarda i decimali...ho provato in tutti i modi
>per far si che in un windows form venisse visualizzato un numero
>arrotondato a 2 decimali dopo la virgola....quali impostazioni
>mi consigliate di utilizzare su access(precisione doppia,intero,
>etc.)?e quali su asp.net(float, double, etc.)?
sinceramente se usi un numerico che supporti almeno due decimali, sia sul db sia nel codice, non vedo problemi di sorta.
Considera che COME presenti il valore non ha a che fare con QUANTO vale veramente. Tu potresti salvare n cifre dopo la virgola e volerne visualizzare solo una. E' una scelta di presentazione. Quindi il consiglio è sempre il medesimo, usare il corretto datatype per il valore che devi salvare.
Prova a spiegare un po' meglio cosa devi trattare e vediamo che viene fuori..

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gianlu29 Profilo | Junior Member

niente di che....a me servirebbe unicamente l'impostazione corretta per avere due cifre dopo la virgola...sia salvate che visualizzate....il problema è che su access mi fa errori e non pochi...allora la soluzione che piu si avvicinava è stata quella di mettere la precisione doppia a due decimali sul db e utilizzare getdouble convertito in float su visual studio....ma i risultati sono stati:
molte cifre a due numeri dopo la virgola,
alcune a tre
e altre ad oltranza finchè non finiva lo spazio della cella.....
suggerimenti?

alx_81 Profilo | Guru

>niente di che....a me servirebbe unicamente l'impostazione corretta
>per avere due cifre dopo la virgola...sia salvate che visualizzate....il
>problema è che su access mi fa errori e non pochi...allora la
>soluzione che piu si avvicinava è stata quella di mettere la
>precisione doppia a due decimali sul db e utilizzare getdouble
>convertito in float su visual studio....ma i risultati sono stati:
> molte cifre a due numeri dopo la virgola,
> alcune a tre
>e altre ad oltranza finchè non finiva lo spazio della cella.....
>suggerimenti?
ho appena fatto un db access, un campo number di tipo decimal con precision 5 e scale 2. Funziona.
Da codice, uso Decimal. Niente di più.
Evita di usare i float, sono a virgola mobile e per di più approssimati.

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gianlu29 Profilo | Junior Member

quando provo a mettere le impostazioni da te descritte mi segnala questop errore:
la precisione del campo decimale è troppo piccola per accettare il numero che si è tentato di aggiungere

non so che fare...il fatto è che il db è gia pieno di dati...e non mi fa il passaggio restituendomi questo errore...cmq ti posso assicurare che la colonna che ho cercato di modificare ha un massimo di due decimali per ogni record dato che l'inserimento su quest'ultima viene eseguito a mano...

ho anche fatto una prova con un db vuoto e se provo ad inserire valori con due cifre decimali o meno mi restituisce sempre lo stesso errore...soluzioni?

alx_81 Profilo | Guru

>quando provo a mettere le impostazioni da te descritte mi segnala
>questop errore:
>la precisione del campo decimale è troppo piccola per accettare
>il numero che si è tentato di aggiungere
questo perchè magari 5 non è sufficiente.. hai provato mettendo una precisione maggiore? la precisione è il numero massimo di cifre e la scala è il numero di cifre dopo la virgola (numero compreso nella precisione).
Ad esempio:

decimal(5,2)

i valori validi sono:
99,54
100,02
1,55
3

quelli non validi sono:
9999,1
1000,2

>ho anche fatto una prova con un db vuoto e se provo ad inserire
>valori con due cifre decimali o meno mi restituisce sempre lo
>stesso errore...soluzioni?
strano, l'ho anche rifatto.. puoi postare uno screen di come imposti il campo number?
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gianlu29 Profilo | Junior Member

mi sento molto niubbo....cmq il funzionamento è Perfetto!! grazie

Alasque Profilo | Newbie

Ciao Alx_81

come faccio a dire che un campo di recordset è di tipo decimale?

cioè se io ho Obj....... .value
basta che cambio .value con .decimal?
Alasque

alx_81 Profilo | Guru

>Ciao Alx_81
ciao

>come faccio a dire che un campo di recordset è di tipo decimale?
>cioè se io ho Obj....... .value
>basta che cambio .value con .decimal?
no.. leggi qui:
http://www.w3schools.com/ado/prop_field_type.asp
http://www.w3schools.com/ado/prop_field_numericscale.asp
http://www.w3schools.com/ado/prop_field_precision.asp
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

Alasque Profilo | Newbie

ti spiego un pò quello che devo fare:

in una tabella di access incollo periodicamente in foglio di excel preventivamente modificato.

in un articolo di un forum ho trovato delle siegazioni su come settare il campo per visualizzare i decimali nella pagina di asp, ovvero:
Numerico
di Tipo decimale
con precisione 5 o 6 o 7 (poi mi regolo)
scala 2
come faccio a scrivere che il dato che la pagina asp deve leggere è di quella tabella se non gli do .value? e gli do .NumericScale o altro parametro?
Alasque

alx_81 Profilo | Guru

>come faccio a scrivere che il dato che la pagina asp deve leggere
>è di quella tabella se non gli do .value? e gli do .NumericScale
>o altro parametro?
Quando definisci il recordset che dovrà contenere quel dato decimale, puoi impostare le proprietà delle colonne coi link che ti ho indicato.
Hai dato una letta?
Detto questo, i dati come li carichi nel recordset? Stai cercando di caricarlo da database? Puoi postare del codice affinchè sia più chiaro?
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5