3 messaggi dal 08 agosto 2003
www.shdelta.net
Non riesco a far memorizzare i decimali di un numero in un database .mdb; naturalmente ho già provveduto a settare il campo come campo numerico con obbligatorie due posizioni decimali.
Un'altro problema del quale non conosco la soluzione: esiste qualche parametro da inserire nel tag <input> per creare una specifica "maschera" di input per campi numerici?
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
forse stai inserendo i valori nel db usando la virgola?

Devi usare il punto. Esempio:
INSERT INTO tabella (campo_decimale) VALUES (13.9)
Assicurati anche che il campo nel db access sia definito come numerico -> DECIMALE (oppure double o single)

ciao

Enjoy learning and just keep making
3 messaggi dal 08 agosto 2003
www.shdelta.net
BrightSoul ha scritto:
forse stai inserendo i valori nel db usando la virgola?

Devi usare il punto. Esempio:
INSERT INTO tabella (campo_decimale) VALUES (13.9)
Assicurati anche che il campo nel db access sia definito come numerico -> DECIMALE (oppure double o single)

ciao

Questo anche se ho già aperto un recordset che contiene la tabella?
11.886 messaggi dal 09 febbraio 2002
Contributi
i numeri decimali in qualsiasi linguaggio di programmazione (credo) si definiscono usando il punto:

miavar = 16.7

se hai un recordset aperto puoi fare:

rs("campo_decimale") = miavar

e ti inserisce il numero esattamente per come è.

La difficoltà nasce nel momento in cui l'utilizzatore del programma deve inserire i dati. Siccome l'utente, dato che non è programmatore, conosce solo il linguaggio naturale (l'italiano), deve poter inserire i numeri nel modo che viene usato in Italia e cioè usando la virgola come separatore di decimali. Esiste una funzione in particolare che ti converte una STRINGA NUMERICA in un numero decimale, ed è Cdbl()
Una stringa numerica è questo:
miavar = "16,7"
per inserirla nel recordset faccio quindi:
rs("campo_decimale") = Cdbl(miavar)

Se il dato ti proviene dal form, usa quest'ultima tecnica, perchè il Request.Form ti restituisce solo stringhe.
Il Cdbl() agisce in base alle impostazioni internazionali. Siccome siamo in Italia, si aspetta che sia la virgola il separatore. Infatti se dovessi scrivere:

miavar = "16.7"
rs("campo_decimale") = Cdbl(miavar)

mi inserirebbe 167, come se il punto non esistesse.
ciao



Modificato da BrightSoul il 16 dicembre 2003 02.06 -

Enjoy learning and just keep making
43 messaggi dal 07 novembre 2001

Un'altro problema del quale non conosco la soluzione: esiste qualche parametro da inserire nel tag <input> per creare una specifica "maschera" di input per campi numerici?



Credo che tu ti riferisca alla formattazione dell'input!?! Allora devi gestire gli eventi: per esempio se devi far si che l'utente inserisca solo determinati caratteri gestirai (per esempio) gli eventi onkeypress e onblur per controllare cio' che inserisce.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.