小数点以下が全て0であればreplaceAllを使って削除します。
RegExp reg = RegExp(r'\.0+$');
print('100.0'.replaceAll(reg, '')); // 100目次
正規表現の解説
\.: ピリオド(小数点)をエスケープした文字です。ピリオドは正規表現において特別な意味を持つため、通常の文字として扱いたい場合にエスケープします。0+: 数字 “0” が 1 回以上繰り返されるパターンです。つまり、小数点以下が “0” で終わる場合にマッチします。$: 行末を示すアンカーです。この正規表現では、文字列全体の末尾にマッチするようになっています。
したがって、RegExp(r'\.0+$') は、文字列の末尾が “0” で終わる場合にその部分にマッチします。これを replaceAll メソッドで空文字列に置き換えることで、その部分を削除する効果があります。
例えば、123.45000 の場合、この正規表現は “000” にマッチし、それを空文字列に置き換えることで 123.45 に変換されます。





Comment