Sage has several types of floating-point numbers.

See an overview in

Among them, `float`

and `RDF`

elements are displayed with no trailing zero,
while `RR`

elements are displayed with a fixed number of significant figures.

To figure out what kind of number a given number is, use the `parent`

function.

Convert between types of numbers by using
`int(a)`

, `ZZ(a)`

, `QQ(a)`

, `float(a)`

, `RR(a)`

, `RDF(a)`

, etc.

If numbers with different parents are added, multiplied, subtracted or divided,
the parent of the result is determined by Sage's coercion system.

Short answer to your question: work in `RDF`

.

Below are a few examples to illustrate the above explanations.

**Example.**

```
sage: a = 3/2
sage: b = float(a)
sage: c = RDF(a)
sage: d = RR(a)
sage: a
3/2
sage: parent(a)
Rational Field
sage: QQ
Rational Field
sage: b
1.5
sage: parent(b)
<class 'float'>
sage: float
<class 'float'>
sage: d
1.50000000000000
sage: parent(d)
Real Field with 53 bits of precision
sage: RR
Real Field with 53 bits of precision
sage: c
1.5
sage: parent(c)
Real Double Field
sage: RDF
Real Double Field
sage: parent(a + b)
<class 'float'>
sage: parent(a + c)
Real Double Field
sage: parent(a + d)
Real Field with 53 bits of precision
sage: parent(b + c)
Real Double Field
sage: parent(b + d)
Real Field with 53 bits of precision
sage: parent(c + d)
Real Field with 53 bits of precision
```