# Computer Programming - Numbers

Every programming language provides support for manipulating different types of numbers such as simple whole integers and floating point numbers. C, Java, and Python categorize these numbers in several categories based on their nature.

Let's go back and check the data types chapter, where we listed down the core data types related to numbers −

Type | Keyword | Value range which can be represented by this data type |
---|---|---|

Number | int | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |

Small Number | short | -32,768 to 32,767 |

Long Number | long | -2,147,483,648 to 2,147,483,647 |

Decimal Number | float | 1.2E-38 to 3.4E+38 till 6 decimal places |

These data types are called primitive data types and you can use these data types to build more data types, which are called user-defined data types.

We have seen various mathematical and logical operations on numbers during a discussion on operators. So we know how to add numbers, subtract numbers, divide numbers, etc.

First let's see how to print various types of numbers available in C programming language −

#include <stdio.h> main() { short s; int i; long l; float f; double d; s = 10; i = 1000; l = 1000000; f = 230.47; d = 30949.374; printf( "s: %d\n", s); printf( "i: %d\n", i); printf( "l: %ld\n", l); printf( "f: %.3f\n", f); printf( "d: %.3f\n", d); }

Rest of the coding is very obvious, but we used **%.3f** to print float and double, which indicates the number of digits after the decimal to be printed. When the above program is executed, it produces the following result −

s: 10 i: 1000 l: 1000000 f: 230.470 d: 30949.374

## Math Operations on Numbers

The following table lists down various useful built-in mathematical **functions** available in C programming language which can be used for various important mathematical calculations.

For example, if you want to calculate the square root of a number, for example, 2304, then you have a built-in function available to calculate the square root.

S.N. | Function & Purpose |
---|---|

1 |
This function takes an angle (as a double) and returns the cosine. |

2 |
This function takes an angle (as a double) and returns the sine. |

3 |
This function takes an angle (as a double) and returns the tangent. |

4 |
This function takes a number and returns the natural log of that number. |

5 |
The first is a number you wish to raise and the second is the power you wish to raise it to. |

6 |
If you pass this function the length of two sides of a right triangle, it will return the length of the hypotenuse. |

7 |
You pass this function a number and it returns its square root. |

8 |
This function returns the absolute value of an integer that is passed to it. |

9 |
This function returns the absolute value of any decimal number passed to it. |

10 |
Finds the integer which is less than or equal to the argument passed to it. |

Following is a simple example to show a few mathematical operations. To utilize these functions, you need to include the math header file **<math.h>** in your program in the same way you included **stdio.h** −

#include <stdio.h> #include <math.h> main() { short s; int i; long l; float f; double d; s = 10; i = 1000; l = 1000000; f = 230.47; d = 2.374; printf( "sin(s): %f\n", sin(s)); printf( "abs(i): %f\n", abs(i)); printf( "floor(f): %f\n", floor(f)); printf( "sqrt(f): %f\n", sqrt(f)); printf( "pow(d, 2): %f\n", pow(d, 2)); }

When the above program is executed, it produces the following result −

sin(s): -0.544021 abs(i): -0.544021 floor(f): 230.000000 sqrt(f): 15.181238 pow(d, 2): 5.635876

Besides the above usage, you will use numbers in loop counting, flag representation, true or false values in C programming.

## Numbers in Java

Following is the equivalent program written in Java. Java provides almost all the numeric data types available in C programming.

You can try to execute the following program to see the output, which is identical to the result generated by the above C example.

public class DemoJava { public static void main(String []args) { short s; int i; long l; float f; double d; s = 10; i = 1000; l = 1000000L; f = 230.47f; d = 30949.374; System.out.format( "s: %d\n", s); System.out.format( "i: %d\n", i); System.out.format( "l: %d\n", l); System.out.format( "f: %f\n", f); System.out.format( "d: %f\n", d); } }

When the above program is executed, it produces the following result −

s: 10 i: 1000 l: 1000000 f: 230.470001 d: 30949.374000

Java also provides a full range of built-in functions for mathematical calculation and you can use them in the same way as you did in C programming.

## Numbers in Python

Python is a little different from C and Java; it categorizes numbers in **int**, **long**, **float** and **complex**. Here are some examples of numbers in Python −

int | long | float | complex |
---|---|---|---|

10 | 51924361L | 0.0 | 3.14j |

100 | -0x19323L | 15.20 | 45.j |

-786 | 0122L | -21.9 | 9.322e-36j |

080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |

-0490 | 535633629843L | -90. | -.6545+0J |

-0x260 | -052318172735L | -32.54e100 | 3e+26J |

0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |

Following is the equivalent program written in Python −

s = 10 i = 1000 l = 1000000 f = 230.47 d = 30949.374 print "s: ", s print "i: ", i print "l: ", l print "f: ", f print "d: ", d

When the above program is executed, it produces the following result −

s: 10 i: 1000 l: 1000000 f: 230.47 d: 30949.374

Python also provides a full range of built-in functions for mathematical calculations and you can use them in the same way you have used them in C programming.