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

Discussione: IsAmericanNumeric

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    IsAmericanNumeric

    Vorrei creare una funzione che restituisca vero o falso a seconda che la stringa passata contenga un numero in formato americano

    es 1.2 --> True
    1,2 --> False
    -1.2 --> true
    N --> false

    Mi potreste aiutare?
    Pietro

  2. #2
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Scomponi la stringa in un array di caratteri.

    Con un bel ciclo While ad Hoc verificali uno ad uno.
    Ad esempio:
    - il primo carattere può essere diverso da un numero solo se è uguale a "-" o a "+";
    - mantieni una variabile bool a False e passala a true la prima volta che trovi il carattere ".", la seconda volta che lo trovi puoi ritornare false;
    - verifica che i caratteri della stringa siano all'interno dell'intervallo dei caratteri che indicano i numeri;

    Ogni volta che una delle condizioni di cui sopra viene violata fai un bel
    codice:
    [C#]
    return false
    Sempre disponibile...
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sì, in effetti è un'idea.

    Io pensavo di convertire dentro il blocco Try una stringa in double utilizzando il metodo parse e passandogli un NumberFormatInfo impostato all'americana.

    Il problema credo che siano le prestazioni..

    Grazie... :gren:
    Pietro

  4. #4
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Non sarebbe customizzabile...

    ...e se non volessi il segno?
    ...e se per qualche motivo vuoi accettare i numeri con "," al posto di "."?

    Forse un metodo personalizzato ti permette di avere uno strumento più flessibile e riutilizzabile...

    ...prego!
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ci sarebbero anche le espressioni regolari

    Ma non le digerisco ancora.. :gren:

    Pietro

  6. #6
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Quelle sono potenti... se usi quelle sei al top.
    Io ci ho dato un occhiata per la verifica di stringhe DateTime... roba da matti!!!! :di56:
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  7. #7
    non sono così cattive le regex.
    sul manuale Asp.net guida per lo sviluppatore edito da Wrox c'è un intero set di 5 pagine che parlano di come utilizzarle via codice(non i web form per intenderci).

    basta che ti crei la regex e poi ad ogni singolo fai un Match.
    e bon sei a cavallo

  8. #8
    Utente di HTML.it L'avatar di polinn
    Registrato dal
    Oct 2003
    Messaggi
    186
    Sono d'accordo che sono utilissime, dico solo che sono un po' complicate da creare... ho seguito un articolo per la creazione di un regex per la validazione di una stringa come data... non era semplice!
    Ma alla fine era perfetta!
    Il mondo è una DEMO...
    ...e come tale ne subisce l'effetto!

  9. #9
    la stringa è questa:
    ^\d*\.?\d*$

    ...l'ho trovata qui
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    In effetti, ricordando bene, ho trovato una volta la tecnica per implementare IsNumeric in c# e prendeva in considerazione tutte queste tecniche. Il problema alla fin fine è di trovare quella meno dispendiosa.

    Grazie a tutti gli amici per le risposte :quote:


    ^\d*\.?\d*$ questa stringa naturalmente non funziona perchè da Numero per . (punto) e Non Numero per -0.2

    Ciao a tutti
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.