BigDecimal and rounding modes

Categories:
After seeing the great success of introductory article on BigDecimal class I wanted to go on with some examples on one of the most complex operations: division. The problem… Is always the same: length :) BigDecimal, as already seen, can have an arbitrary number of decimal digits: this does not mean they can go to infinity, indeed we have at our disposal something like four billions digits, and counting. Not bad, you could argue… well let’s try this at home: how many computers are needed to store all the decimals of “1 / 3”?

Read More →

Impossible Math

Categories:
Can we trust computers calculations? Introduction IEEE 754 specification is the standard used for floating-point calculations in the engineering and scientific fields. In my humble opinion it is a perfect example of how computer industry and software development are based on a fundamental illusion of mankind: the possibility to attain and manipulate infinity (infinitely small, infinitely big, it doesn’t matter). I don’t really want to discuss the value of this standard (which is used among others by all processors and programming languages), but to explain the pain I feel looking at results like these:

Read More →

BigDecimal

Categories:
java.math.BigDecimal class represents “Immutable, arbitrary-precision signed decimal numbers” (with some limits), and has methods to operate on those numbers. Its use although is not so immediate and it is easy to do errors. In this article I’ll try to put some light on this topic, in the hope of seeing a lowering in the amount of bugs related to code using BigInteger and BigDecimal. What is it The package java.

Read More →

Calcoli Impossibili

Categories:
È possibile dubitare dei calcoli di un computer ? Un’introduzione La specifica IEEE 754 rappresenta lo standard per il calcolo in virgola mobile, cioè quello usato per i calcoli di tipo scientifico e ingegneristico; a mio parere è un’ottimo esempio di come l’industria informatica e lo sviluppo di software sia basato su un’illusione fondamentale dell’umanità: quella di poter raggiungere e manipolare l’infinito (infinitamente grande, infinitamente piccolo, non importa).

Read More →

BigDecimal e metodi di arrotondamento

Categories:
Visto il grande successo dell’articolo introduttivo sulla classe BigDecimal ho deciso di proseguire la serie con qualche esempio su una delle operazioni più complesse: la divisione. Il problema… …è il solito: le dimensioni :) BigDecimal, abbiamo detto, può avere un numero arbitrario di cifre decimali: arbitrario si, ma non infinito, infatti abbiamo a disposizione circa quattro miliardi e rotti di decimali. Non male, direte…beh allora fate questa prova: quanti computer ci vogliono per contenere tutti i decimali della divisione “1 / 3” ?

Read More →