Posted in

How to Get Double Only From String in Flutter

**extractDouble() to the Rescue: How to Get Double Only from String in Flutter**

Advertisement

When working with user input or data retrieved from an API, you often need to convert strings into more usable formats – like numbers. In Flutter, you may encounter strings that contain only numbers, but also strings with non-numeric characters, like commas or decimal points. In this post, we’ll explore how to extract the double value from a string in Flutter using the `double.parse()` and `double.tryParse()` methods.

**Why Not Just Use `int.parse()`?**

First, let’s clarify why we’re using `double` instead of `int`. Suppose you have a string like `”12.50″`, which represents a decimal value. You’d want to convert it to a `double` rather than an `int` to preserve the decimal part. `double.parse()` can handle this conversion, while `int.parse()` would simply truncate the decimal part, resulting in an incorrect value.

Advertisement

**Using `double.parse()`**

To extract a double value from a string using `double.parse()`, you can simply pass the string as an argument. For example:
“`dart
String str = “123.45”;
double doubleValue = double.parse(str);
print(doubleValue); // Output: 123.45
“`
However, be aware that `double.parse()` will throw a `FormatException` if the input string cannot be parsed as a double value.

**Using `double.tryParse()`**

Advertisement

To handle the possibility of a invalid input, you can use `double.tryParse()`, which returns a nullable `double` value if the parsing fails. Here’s how to use it:
“`dart
String str = “invalid input”;
double? doubleValue = double.tryParse(str);
print(doubleValue); // Output: null
“`
In this example, `double.tryParse()` returns `null` because the input string cannot be parsed as a double value.

**How to Use `extractDouble()`**

In Flutter, you can create a handy extension method, called `extractDouble()`, to simplify the process of extracting a double value from a string. Here’s an example implementation:
“`dart
extension StringExtensions on String {
double? extractDouble() {
return double.tryParse(this);
}
}
“`
Now, you can use this extension method to extract a double value from a string:
“`dart
String str = “12.50”;
double? doubleValue = str.extractDouble();
print(doubleValue); // Output: 12.5
“`
**Conclusion**

Advertisement

In this post, we’ve explored how to extract a double value from a string in Flutter using `double.parse()` and `double.tryParse()` methods. We also created a handy extension method, `extractDouble()`, to simplify the process. By using these techniques, you can confidently handle user input and API data in your Flutter app, even when dealing with decimal values.

You May Also Like
Advertisement

Leave a Reply

Advertisement
Advertisement