Dart – How to round double number

In this tutorial, we’re gonna show you how to round double number in Dart. You will know the ways to:

• round double to int
• round double to integer double value
• round double to N decimal places

Dart round double to int

Using round() method, we can get an integer closest to a double.

For example:

int num1 = (2.3).round();
// 2

int num2 = (2.5).round();
// 3

int num3 = (-2.3).round();
// -2

int num4 = (-2.5).round();
// -3

Dart round double to integer double value

We can get an integer double value closest to a double with roundToDouble() method.

Remember that if a double d is in the range -0.5 < d < 0.0, the result will be -0.0.

For example:

double num1 = (2.3).roundToDouble();
// 2.0

double num2 = (2.5).roundToDouble();
// 3.0

double num3 = (-2.3).roundToDouble();
// -2.0

double num4 = (-2.5).roundToDouble();
// -3.0

double num5 = (-0.2).roundToDouble();
// -0.0

double num6 = (0.2).roundToDouble();
// 0.0

Dart round double to N decimal places

We have 2 ways to round double to N decimal places in Dart:

– Use toStringAsFixed() to get closest string representation with exactly N digits after the decimal point, then parse the result to double.

double num1 = double.parse((12.3412).toStringAsFixed(2));
// 12.34

double num2 = double.parse((12.5668).toStringAsFixed(2));
// 12.57

double num3 = double.parse((-12.3412).toStringAsFixed(2));
// -12.34

double num4 = double.parse((-12.3456).toStringAsFixed(2));
// -12.35

– Multiply the number by 10^N (using pow() function), then round the result to integer and divide it by 10^N.

For example, we want to round double to 2 decimal places. Assume that the number is 12.3412:

• Step 1: 12.3412 * 10^2 = 1234.12
• Step 2: round 1234.12 to 1234
• Step 3: 1234 / 10^2 = 12.34

We will need to write a roundDouble() function with the help of dart:math library.

import 'dart:math';

double roundDouble(double value, int places){
double mod = pow(10.0, places);
return ((value * mod).round().toDouble() / mod);
}

main() {
double num1 = roundDouble(12.3412, 2);
// 12.34

double num2 = roundDouble(12.5668, 2);
// 12.57

double num3 = roundDouble(-12.3412, 2);
// -12.34

double num4 = roundDouble(-12.3456, 2);
// -12.35
}

Conclusion

Today we’ve known ways to round double to int, integer double value and to N decimal places.
Here are some useful posts that you may like:
Parse a String into a number in Dart/Flutter
Dart/Flutter String Methods & Operators

Happy Learning! See you again.

3 thoughts to “Dart – How to round double number”

1. bunwan says:

Hi, this post is actually help me a lot. I’m new to Dart. Thanks.

2. Maruf says:

I read all the blogs, its just perfect with crisp and short examples

1. bezkoder says:

Thanks ðŸ™‚