I was trying to normalize a set of numbers from -100 to 0 to a range of 10-100 and was having problems only to notice that even with no variables at all, this does not evaluate the way I would expect it to:

```>>> (20-10) / (100-10)
0```

Float division doesn't work either:

```>>> float((20-10) / (100-10))
0.0```

If either side of the division is cast to a float it will work:

```>>> (20-10) / float((100-10))
0.1111111111111111```

Each side in the first example is evaluating as an int which means the final answer will be cast to an int. Since 0.111 is less than .5, it rounds to 0. It is not transparent in my opinion, but I guess that's the way it is.

What is the explanation?

Oct 17, 2018 in Python 134 views

## 1 answer to this question.

You're using Python 2.x, where integer divisions will truncate instead of becoming a floating point number.

```>>> 1 / 2
0```

You should make one of them a float:

```>>> float(10 - 20) / (100 - 10)
-0.1111111111111111```

or from __future__ import division, which the forces / to adopt Python 3.x's behavior that always returns a float.

```>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111```
• 58,080 points

## what is the practical use of polymorphism in Python?

Polymorphism is the ability to present the ...READ MORE

## What is an array in Python? How to declare it?

Python doesn't have a native array data ...READ MORE

## What is python? Where it is used?

Python is develop by Guido Van Rossum ...READ MORE

+1 vote

## What do you mean by python scripting? What is a script and a module in python?

A module is a file containing a ...READ MORE

## how do i change string to a list?

suppose you have a string with a ...READ MORE

## how can i randomly select items from a list?

You can also use the random library's ...READ MORE

+1 vote

## how can i count the items in a list?

Syntax :            list. count(value) Code: colors = ['red', 'green', ...READ MORE