Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Comparare stringhe

  1. #1

    Comparare stringhe

    Buon pomeriggio.
    Dovrei comparare degli importi come stringhe per esempio:
    var minimo = "100,00";
    var offerta = "123,00";

    e determinare se "offerta" è maggiore o minore di "minimo"

    Ho provato questa soluzione, var n = minima.localeCompare(offerta); ma restituisce sempre -1
    sia che "offerta" sia 12 che 123

    oppure questa if (minima.toString() < offerta.toString()), restituisce sempre il contrario di quello che mi aspetto.

    Potete aiutarmi cortesemente?
    Grazie.

  2. #2
    se sono importi dovresti comparare numeri non stringhe...

  3. #3
    cosi me li hanno passati.

  4. #4
    ho trovato questa soluzione:
    codice:
    function compare(num1, num2, num3) {
    	if (num3 > num2 && num1 > num3) {
    		return num1 + ' is the biggest number';
    	} else if (num2 > num1 && num2 > num3) {
    		return num2 + ' is the biggest number';
    	} else {
    		return num3 + ' is the biggest number';
    	}
    }
    var results = compare(100,20, 300);
    Ovviamente prima devo convertire

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,913
    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    cosi me li hanno passati.
    E tu li converti in valori numerici. Se ti passano un valore come "pippo", lo avresti accettato ugualmente?

    Mai fidarsi dell'input dell'utente: va sempre controllato e interpretato per ricondurlo alla tipologia di valore che si deve trattare.
    Questo vale ovviamente in qualsiasi contesto, non solo in quello discusso qui.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    177
    Non so se ho capito bene il tuo problema.
    codice:
    const minimo = "100,02"
    const offerta = "100,01"
    
            function myCompare(minimo, offerta) {
                const pMinimo = Number.parseFloat(minimo.replace(',', '.', minimo))
                const pOfferta = Number.parseFloat(offerta.replace(',', '.', offerta))
                let result = ''
                if (!isNaN(pMinimo) && !isNaN(pOfferta)) {
                    if (pOfferta > pMinimo) {
                        result = 'offerta maggiore di minimo'
                    } else if (pOfferta < pMinimo) {
                        result = 'offerta minore di minimo'
                    } else if (pOfferta === pMinimo) {
                        result = 'offerta uguale a minimo'
                    }
                } else {
                    result = 'Errore formato!'
                }
                return result
            }
    
            console.log(myCompare(minimo, offerta))

  7. #7
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    Non so se ho capito bene il tuo problema.
    codice:
    const minimo = "100,02"
    const offerta = "100,01"
    
            function myCompare(minimo, offerta) {
                const pMinimo = Number.parseFloat(minimo.replace(',', '.', minimo))
                const pOfferta = Number.parseFloat(offerta.replace(',', '.', offerta))
                let result = ''
                if (!isNaN(pMinimo) && !isNaN(pOfferta)) {
                    if (pOfferta > pMinimo) {
                        result = 'offerta maggiore di minimo'
                    } else if (pOfferta < pMinimo) {
                        result = 'offerta minore di minimo'
                    } else if (pOfferta === pMinimo) {
                        result = 'offerta uguale a minimo'
                    }
                } else {
                    result = 'Errore formato!'
                }
                return result
            }
    
            console.log(myCompare(minimo, offerta))
    Ti ringrazio davvero tanto.

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