# Problem operating with doubles

Probably will sound a stupid question but I have:

```
double value = 0;
value = 2 - (10 / 20);
return value ; // return 2
```

and testign with d

```
double value = 0;
value = 2 - (10 / 20d);
return value ; // return 1.5
```

How should I work with doubles? have to add "d" next to a value with a possible decimal result??? How this exactly works? I dont want to check AAAAALLLL my code and testing each operation!

Thank you.

**Answer** by MacDx
·
Oct 26, 2017 at 09:19 PM

Yes, working with doubles is the same as working with floats, you need to be careful with how you write the numbers in your operations.

The fact is that in your first version:

```
double value = 0;
value = 2 - (10 / 20);
return value ; // return 2
```

You have a double variable however your entire operation, ( 2 - ( 10 / 20)) is working only with integers, since you aren't specifying a "f" for float or a "d" for double. 10 / 20 is an integer division not a float, nor a double division, and from an integer point of view, 20 cannot divide 10, there's no way you can fit a 20 inside a 10, so you get 0 as a result. 2 - 0 = 2 so you get a 2 that is an integer and then C#, with enormous kindness and understanding, automatically casts your result int into a double so it can be stored inside your variable of type double, instead of throwing an type error.

In your second version when you add the "d":

```
double value = 0;
value = 2 - (10 / 20d);
return value ; // return 1.5
```

You are making the 20 be represented as a double, that means that C# will cast the 10 to a double so it can perform the division. The result of the division will now be a double (which is 0.5 since you can only fit half of a 20 inside a 10) and that means that the result of the subtraction will also be turned into a double.

**So, to sum up** and answer your question:

Do I have to add "d" next to a value with a possible decimal result???

The answer is yes. You have to get into the hobby of adding a "d" (or an "f" if you want to use floats instead) when you are dealing with numbers that you expect to have decimal places.

Haha ty, then I was right Q_Q I willl have to check everything now...

### Your answer

### Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

### Follow this Question

### Related Questions

Boolean operations on PolygonColliders 1 Answer

Wrong result although code should be correct. 0 Answers

GetMouseButtonDown double call 0 Answers

Summing floats went terribly wrong 0 Answers

Not Checking if Greater than 0 1 Answer