Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297

    Visualizzazione decimali SENZA arrotondamento

    Ciao a tutti.
    Io avrei la necessità che dato un numero risultante da una divisione che potrebbe essere
    371.1526543333 oppure anche solo 12.368 mi venisse visualizzato senza arrotondamenti con solo due cifre decimali dopo la virgola.

    Ovvero:
    371.1526543333 --> 371.15
    12.368 --> 12.36

    Le ho provate tutte ma proprio non ci salto fuori ... qualche idea?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Moltiplichi il numero per 100

    371.1526543333 x 100 = 37115.26543333

    Prendi solo la parte intera

    Int(37115.26543333) = 37115

    Dividi per 100

    37117 / 100 = 371.15

  3. #3
    trattalo come una stringa e usa mid
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Puoi usare anche

    Con Arrotondamento per eccesso
    Codice PHP:
    Round((FormatNumber(variabile),2),1
    Senza Arrotondamento
    Codice PHP:
    (FormatNumber(variabile),2

    Ciao
    - La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.

    - Se i fatti e la teoria non concordano, cambia i fatti

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297
    Alla fine ho risolto creandomi ad hoc questa function

    Function NO_Arrotonda(numero)
    numero = replace(numero,".",",") 'IN OGNI CASO FACCIO IL REPLACE DEL PUNTO CON LA VIRGOLA

    'SE IL NUMERO HA DEI DECIMALI (CONTROLLO PRESENZA VIRGOLA)
    If inStr(1, numero, ",", 1) > 0 then

    numero_SPLIT = split(numero, ",") 'FACCIO LO SPLIT PER LA VIRGOLA
    decimali = numero_SPLIT(1) 'RECUPERO LA PARTE DEI DECIMALI

    'CONTROLLO QUANTO E LUNGA --> SE UN CARATTERE, AGGIUNGO UNO ZERO || SE PIU DI DUE CARATTERI RECUPERO SOLO I PRIMI DUE
    If len(cStr(decimali)) = 1 then decimali = decimali&"0"
    If len(cStr(decimali)) > 1 then decimali = left(decimali,2)

    'COSTRUISCO NUOVAMENTE IL NUMERO FORMATTATO CORRETTAMENTE
    numero = numero_SPLIT(0)&","&decimali 'SE PUO ESSERE UNA STRINGA ALLORA VIENE VISUALIZZATO LO ZERO
    'numero = cDbl(numero_SPLIT(0)&","&decimali) 'SE DEVE ESSERE UN NUMERO NON VIENE VISUALIZZATO LO ZERO IN FONDO
    NO_Arrotonda = numero

    'ALTRIMENTI SE IL NUMERO E UN INTERO --> AGGIUNGO DUE ZERI COME DECIMALI
    else

    decimali = 00
    numero = numero&",00"
    NO_Arrotonda = numero

    end if
    End Function
    Grazie 1000 a tutti
    Sempre molto gentili e veloci con le risposte

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Che lavorata immane, quella funzione si fa in una riga sola, aggiungendo una FormatNumber al suggerimento che ti avevo dato...:

    NumeroFinale = FormatNumber((Int(NumeroIniziale*100))/100, 2)

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