Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    errore nelle sottrazioni

    salve,
    abbiamo riscontrato che facendo delle sottrazioni di campi DOUBLE
    33,5-33,51 da come risultato 0,009999

    ho provato a simulare a mano l'errore

    ho fatto una tabella

    create table `testsum` (
    `a` double ,
    `b` double
    );

    nel campo a ho inserito 33.5
    nel campo b ho inserito 33.51

    SELECT a-b FROM testsum

    e mi ritorna come risultato -0.00999999999999801

    non so se sbaglio io o cosa... certo è che siamo davanti ad una semplice sottrazione
    www.contabilitafacile.it

  2. #2
    accidenti...

    dimenticavo, stiamo parlando di mysql (provato in varie versioni)
    www.contabilitafacile.it

  3. #3
    mi pare ovvio. se non definisci la lunghezza del campo, DOUBLE arriva fino a 15 cifre dopo la virgola senza arrotondamenti o quanti ne permette l'hardware del tuo pc.

    definisci la lunghezza. Es:

    codice:
    create table `testsum` (
    `a` double(6,4),
    `b` double(6,4)
    );
    6 cifre totali di cui 4 decimali, come nell'esempio sara' 33.5 - 33.51 = -0.0100

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

  4. #4
    ti ringrazio x il suggerimento,
    ma rimane il fatto che in quella sottrazione
    non è cmq sbagliata

    xchè 33.5 - 33.51 è uguale 0.01
    www.contabilitafacile.it

  5. #5
    Originariamente inviato da Fumocamel
    ti ringrazio x il suggerimento,
    ma rimane il fatto che in quella sottrazione
    non è cmq sbagliata

    xchè 33.5 - 33.51 è uguale 0.01
    forse volevi dire che:

    33.51 - 33.5 e' uguale a 0,01


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

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