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

    Problema arrotondamento decimale con valore = 5

    Ho un problema con l'arrotondamento di un decimale:

    Esempio:

    PX = 5,7885

    facendo:

    Round(PX,3)

    ottengo: 5,788

    io invece vorrei ottenere, quando il decimale successivo all'arrotondamento è 5, un arrotondamento in eccesso (e non in difetto come mi sembra che avvenga normalmente); quindi in questo caso dovrebbe essere:

    5,789 (dato che il numero successivo al 3 decimale da arrotondare è 5)

    come posso fare??

    Grazie per l'aiuto
    Iceberg

  2. #2
    ora non ricordo se c'è qualche funzione per decidere se arrotondare sui cecimali in eccesso o in difetto ma se sommi 0.0001 a tutti i numeri prima di arrotondare ottieni quello che vuoi no?

    (anche se sono certo ci sia un metodo meno rozzo)
    Larga è la foglia,stretta è la via...tu segui la tua che io seguo la mia...

  3. #3
    io dovrei farlo arrotondare solo quando c'è il numero 5, e poi se il numero mi risulta con solo 2 decimali

    boooo non sono sicuro che sia la soluzione ottimale
    Iceberg

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Con

    formatNumber(px,5)

    cosa ottieni?

    Roby

  5. #5
    Semplicemente

    response.write formatnumber((mia_variabile),5)

    dove "5" è il numero decimale che comparirà sempre dopo la virgola se metti 2 ne comparirà evidentemente due!!!

    mia_variabile è il valore che tu hai !!

    Ok cioa Steweb

  6. #6
    Originariamente inviato da Roby_72
    Con

    formatNumber(px,5)

    cosa ottieni?

    Roby
    perchè 5??

    ottengo:


    PX=Round(PX,3) dato che prima devo ridurlo a 3 decimali (sono oltre 7)
    PX=FormatNumber(PX,5)

    5,78800
    Iceberg

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Pensavo fossero 5 decimali...

    Roby

  8. #8
    Quindi come posso fare???


    Iceberg

  9. #9
    le msdn recitano:

    ROUND( ) Consente di arrotondare un numero per eccesso in base al numero di cifre decimali specificato.

    FLOOR( ) Consente di arrotondare un numero per difetto al numero intero più prossimo.

    CEILING( ) Consente di arrotondare un numero per eccesso al numero intero più prossimo.
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  10. #10
    quando ho letto il tuo post mi sono illuminato

    ma non funzianooooo

    Iceberg

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.