toStringAsSmartRound method
String
toStringAsSmartRound(
{ - int maxPrecision = 2,
})
Implementation
String toStringAsSmartRound({final int maxPrecision = 2}) {
final String str = toString();
try {
if (str.contains(".")) {
final List<String> split = str.split("");
final List<String> mantissa = <String>[];
final int periodIndex = str.indexOf(".");
final String wholePart = str.substring(0, periodIndex);
int numChars = 0;
for (int i = periodIndex + 1; i < str.length; i++) {
if (numChars >= maxPrecision) break;
final String char = split[i];
mantissa.add(char);
numChars++;
}
if (mantissa.isNotEmpty) {
int i = mantissa.length - 1;
while (mantissa.isNotEmpty) {
if (mantissa[i] != "0") break;
i--;
mantissa.removeLast();
}
if (mantissa.isNotEmpty) {
return "$wholePart.${mantissa.join()}";
}
}
return wholePart;
}
} catch (e) {}
return str;
}