Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove trailing zeros using Dart

Tags:

flutter

dart

I would like the optimal solution for removing trailing zeros using Dart. If I have a double that is 12.0 it should output 12. If I have a double that is 12.5 it should output 12.5

like image 216
John Avatar asked Mar 13 '19 22:03

John


4 Answers

I made regular expression pattern for that feature.

double num = 12.50; // 12.5
double num2 = 12.0; // 12
double num3 = 1000; // 1000

RegExp regex = RegExp(r'([.]*0)(?!.*\d)');

String s = num.toString().replaceAll(regex, '');
like image 51
Yuna Avatar answered Dec 04 '22 07:12

Yuna


UPDATE
A better approach, just use this method:

String removeDecimalZeroFormat(double n) {
    return n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 1);
}

OLD
This meets the requirements:

double x = 12.0;
double y = 12.5;

print(x.toString().replaceAll(RegExp(r'.0'), ''));
print(y.toString().replaceAll(RegExp(r'.0'), ''));

X Output: 12
Y Output: 12.5

like image 34
John Avatar answered Dec 04 '22 09:12

John


Use NumberFormat:

String formatQuantity(double v) {
  if (v == null) return '';

  NumberFormat formatter = NumberFormat();
  formatter.minimumFractionDigits = 0;
  formatter.maximumFractionDigits = 2;
  return formatter.format(v);
}
like image 20
greensuisse Avatar answered Dec 04 '22 09:12

greensuisse


If what you want is to convert a double without decimals to an int but keep it as a double if it has decimals, I use this method:

num doubleWithoutDecimalToInt(double val) {
  return val % 1 == 0 ? val.toInt() : val;
}
like image 33
SimonC Avatar answered Dec 04 '22 09:12

SimonC