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

    Arrotondamento per difetto

    Salve a tutti,

    ho un piccolo problema "aritmetico": in una schermata di risultati visualizzo le news per 3 a pagina. il problema è che quando devo definire il numero totale di pagine ricevo come risultato un valore decimale (che è il risultato esatto della frazione).
    Ecco il codice:
    codice:
    ...
    ' memorizzo il valore di shift
    shift=request.QueryString("shift")
    rec1.movelast
    ' memorizzo le news totali su total
    total = rec1.recordCount
    ' memorizzo le pagine totali su pagtot
    pagtot= total / 3
    ' memorizzo la posizione dell'ultima news della pagina attuale su pos
    pos = shift+3 
    ' Memorizzo la pagina corrente su page
    page=pos / 3
    
    %>
    <%Pagina <%=page%> di <%=pagtot%> - NEWS totali <%=total%>
    <%end if%>
    ...
    Nel caso ad esempio che le news totali fossero 4, ottengo come pagine totali 1,3 periodico.
    Come faccio ad arrotondare il valore per difetto e quindi ritrovarmi come risultato in questo caso 2?

    Grazie per l'aiuto...

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Sicuro che non ti serva solo la parte intera con
    Int(numero) ???
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3
    codice:
    pagtot= int(total / 3)
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  4. #4
    Solo che nel tuo caso non va bene, perchè tu devi arrotondare per eccesso, non per difetto:

    codice:
    pagtot= int(total / 3)+1
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  5. #5
    Ma se uso il codice come consigli tu:
    codice:
    pagtot= int(total / 3)+1
    funzionera' bene solo nel caso di numero decimale, nel caso invece in cui invece le news totali sono ad esempio 6,9,12 ecc... otterrei:

    pagtot= int(6/3)+1 quindi pagtot=3 che non è esatto.

    Dovrei in qualche modo riuscire a comportarmi in modo differente
    nei 2 casi e formattare il numero solo se decimale:

    codice:
    If pagtot = decimale then
    pagtot=pagtot+1
    else
    end if
    Come faccio a capire se il risultato di pagtot è decimale?

    Grazie a tutti per l'aiuto.

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Devi usare soltanto int(numero), che non arrotonda ma prende in considerazione la parte intera.

    ... tra l'altro parlavi, come da titolo.. di arrotondamento per difetto.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    codice:
    pagtot= total / 3
    pagtest=int(pagtot)
    if pagtest<>pagtot then
    pagtot=pagtest+1
    end if
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  8. #8
    il problema è che io DEVO arrontondare....

    Se ho 4 news e le divido per 3(numero di news per pagina) ottengo: 1.333333 se metto INT ottengo 1 ma in realta' le pagine sono 2... del resto se aggiungo 1 come consigliato, il risultato è attendibile solo per numeri decimali ma diventa falsato per numeri interi

    capisci il dilemma?

    Grazie prolungato... [a dopo]

  9. #9
    ...dilemma........



    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti basta verificare che la divisione abbia resto.
    Se ha resto prendi la parte intera ed aggiungi uno, se non ce l'ha lasci così com'è.

    codice:
    if total mod 3 = 0 then 'resto 0
    pagtot = total/3
    else 'c'è il resto
    pagtot = int(total/3) + 1
    end if
    Roby

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.