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

Discussione: istruzione sql

  1. #1

    istruzione sql

    Ho un istruzione sql di un calcolo matematico
    ((PRORIV+(PRORIV*20)/100 +0.49)/0.5*10+0.5)/10*0.5 AS PREZPUB

    risultato di PREZPUB = 51.844999999998

    dovrei arrotondarlo e farlo sucire a 51.80 come devo fare ? che istruzione usare ?
    garzie

  2. #2
    prova con ROUND($float,1) e poi lo formatti con due decimali, il secondo decimale sara' zero.

    puoi farlo sia con SQL che con PHP

    con php:

    echo number_format(round(51.844999999998, 1), 2);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    doveri farlo in sql è un campo calcolato nel db ..
    non concosendo la sintassi ..........

    io ho provato così
    ROUND(((PRORIV+(PRORIV*20)/100 +0.49)/0.5*10+0.5)/10*0.5,1,2)
    ma il risultato è .........
    42.2000000000003
    dovrebbe semplicemnte darmi 42.20
    cmq grazie dell'aiuto..

  4. #4
    round(quel float che ti pare, 2)

    per avere il secondo decimale a zero basterebbe indicare un solo decimale invece di due e poi aggiungere lo zero, ma dipende anche "come" vuoi arrotondare .....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    scusa così ?
    round(float (((PRORIV+(PRORIV*proiva)/100 +0.49)/0.5*10+0.5)/10*0.5),2))
    non è corretto ...

  6. #6
    Originariamente inviato da salvatore78
    scusa così ?
    round(float (((PRORIV+(PRORIV*proiva)/100 +0.49)/0.5*10+0.5)/10*0.5),2))
    non è corretto ...

    ROUND(X), ROUND(X,D)

    Returns the argument X, rounded to the nearest integer. With two arguments, returns X rounded to D decimal places. D can be negative to cause D digits left of the decimal point of the value X to become zero.

    mysql> SELECT ROUND(-1.23);
    -> -1
    mysql> SELECT ROUND(-1.58);
    -> -2
    mysql> SELECT ROUND(1.58);
    -> 2
    mysql> SELECT ROUND(1.298, 1);
    -> 1.3
    mysql> SELECT ROUND(1.298, 0);
    -> 1
    mysql> SELECT ROUND(23.298, -1);
    -> 20

    The return type is the same type as that of the first argument (assuming that it is integer, double, or decimal). This means that for an integer argument, the result is an integer (no decimal places).

    The behavior of ROUND() when the argument is halfway between two integers depends on the C library implementation. Different implementations round to the nearest even number, always up, always down, or always toward zero. If you need one kind of rounding, you should use a well-defined function such as TRUNCATE() or FLOOR() instead.
    dal manuale mysql.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    ok ho capito ma son nnumeri interi.. a me serve che mi tronchi .. di due numeri dopo la virgola...

  8. #8
    Originariamente inviato da salvatore78
    ok ho capito ma son nnumeri interi.. a me serve che mi tronchi .. di due numeri dopo la virgola...
    interi???? :master:

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    ok 42.2000000000003 deve diventare 42.20

  10. #10
    dicimao che son ad un punto morto.. quella è l'istruzione ed il ristultato.. più di uelo non so fare.. e non so dove ppellarmi visto che le ho porvate tutte..

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.