diff --git a/README-EN.md b/README-EN.md index 370a7de..f626b0c 100644 --- a/README-EN.md +++ b/README-EN.md @@ -179,6 +179,7 @@ lessThan : < . thanOrEqual : <= . greaterThan : > . greaterOrEqual : >= . +removeTrailingZeros : get string By value double, and remove redundant trailing zeros. ``` * ObjectUtil -> [Example](https://github.com/Sky24n/flutter_wanandroid/blob/master/lib/demos/object_util_page.dart) diff --git a/README.md b/README.md index 2dd620b..0338c3a 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,7 @@ lessThan : < . thanOrEqual : <= . greaterThan : > . greaterOrEqual : >= . +removeTrailingZeros : double转数字字符串,并移除末尾多余的0. ``` * ObjectUtil -> [Example](https://github.com/Sky24n/flutter_wanandroid/blob/master/lib/demos/object_util_page.dart) diff --git a/lib/src/num_util.dart b/lib/src/num_util.dart index 4b4cc85..b1b2e2b 100644 --- a/lib/src/num_util.dart +++ b/lib/src/num_util.dart @@ -158,4 +158,22 @@ class NumUtil { static bool greaterOrEqualDecStr(String a, String b) { return Decimal.parse(a) >= Decimal.parse(b); } + + /// Remove trailing zeros of double number. + static String removeTrailingZeros(double number) { + if (number == null) { + return null; + } + + if (number.truncateToDouble() == number) { + return number.toStringAsFixed(0); + } + + final value = number.toString(); + int index = value.length; + + while (value[--index] == '0') {} + + return number.toStringAsFixed(index - value.indexOf('.')); + } }