How to convert Double to String or String to double in Dart| Flutter By Example
This tutorial shows multiple ways to convert double to String or string to double in Dart and flutter programming languages.
- Convert Double to String in Dart: - Double.parsemethod takes- stringnumber and returns a- doublevalue.- double.parse("111.12")returns- 111.12. Throws- FormatExceptionif given string is- non-numeric.
 
- Double.tryParsemethod takes- stringnumber and returns- doublevalue.- double.tryParse("111.12")returns- 111.12. Does not throw exception and returns- nullif the string is- non-numeric.
- Convert String to Double in Dart: - - Double toString()method returns the- stringversion of a- doublenumber.- 123.11.toString()returns- 123.11.
- toRadixString() convert string to double.
- Append string with interpolation - ${}syntax.- '${number}'where number is a- doublenumber.
Let’s explore the String and Double types in Dart and Flutter.
A string is a sequence of characters enclosed in either double quotes or single quotes. It can consist of numbers, letters, symbols, or a combination of these. Example string is ‘1.123’.
On the other hand, a double is a primitive data type representing a floating-point number in Dart programming. Example double is ‘1.123’.
Both types are distinct, and automatic conversions between them are not possible. Therefore, manual conversion is required when converting from a String to a double or vice versa.
Here are some examples illustrating how to perform these conversions.
Check my other posts
How to parse String to double in Dart programming example
There are multiple ways to perform this conversion. One common approach is to use the parse method in the double class.
- use the parse method in a double class - The - doubleclass provides a static- parse()method, which takes an input string and converts it into a double type.- Syntax: - double parse(String str)- The - argumentis a string representation of a number. If the string contains non-numeric characters, it throws a Uncaught Error: FormatException: Invalid double.- Here is an example - void main() { var str = '123.10'; var number = double.parse(str); print(number); // 123.1 print(number.runtimeType); // double print(number == 123.10); // true }- The - parsemethod throws an error for invalid string representations of floating-point numbers, such as those containing non-numeric characters or null values.- For example, attempting to parse the string - 123.1a0dwill result in a Uncaught Error: FormatException: Invalid double 123.10d.- void main() { var str='123.1a0d'; var number = double.parse(str); print(number.runtimeType); // double print(number==123.10); // true }
- Double tryParse Method - The - tryParsemethod in the double class provides a more robust alternative to the- parsemethod.- It efficiently handles runtime exceptions and returns null if the provided string is invalid or contains non-numeric characters. - Here is a double tryParse method example for successful usecase - void main() { var str = '123.10'; var number = double.tryParse(str); print(number); // 123.1 print(number.runtimeType); // double print(number == 123.10); // true }- The above example demonstrates the successful parsing of a valid string into a double. - The below example returns null and handles invalid string floating values - void main() { var str = '123a.10'; var number = double.tryParse(str); print(number); // null print(number.runtimeType); // Null print(number == 123.10); // false }- In this example, the tryParse method returns null when the input string contains invalid floating-point values, ensuring smooth error handling without raising exceptions. 
parse and tryParse() both methods can be used in flutter programming for Converting strings to double.
How to Convert Double to String in Dart or flutter for example?
There are multiple ways to convert double to String in dart.
- toString() method 
- toRadixString() method 
- Append string with interpolation syntax 
- using toString() method - In Dart, every class provides the - toString()method, which returns a string representation of the object.- The - doubleclass also provides the- toString()method, which converts a floating-point number into its string representation.- void main() { double number = 12.11; String str = number.toString(); print(str); // 12.11 print(str.runtimeType); // String print(str == '12.11'); // true }- In this example, the - toString()method is used to convert the double number 12.11 into its string representation. The resulting string is then printed along with its type information.
- Appending a String with Interpolation Syntax - String appending can be achieved using interpolation syntax, denoted by - ${}within single or double quotes. This allows for dynamic inclusion of variables or expressions within a string.- You can append strings or plain numbers using interpolation syntax. - Here is an example - void main() { double number = 12.11; String str = '${number}'; print(str); // 12.11 print(str.runtimeType);// String print(str == "12.11"); // true }- In this example, the interpolation syntax - ${number}is used within the string to dynamically append the value of the variable number.- The resulting string is then printed along with its type information. 
Convert Long Double to String without Scientific Notation in Dart and Flutter
Sometimes, you may encounter a double floating-point number with an extended floating value that needs to be converted to a string without scientific notation.
Let’s explore various methods to achieve this in Dart and Flutter.
- Using toString() and String Interpolation Syntax - The - toString()method and string interpolation syntax can be used to convert a long double to a string. However, by default, they may output the string with scientific notation.- void main() { double number = 0.00000000124211113245266; String numToString = number.toString(); String str = '${number}'; print(str); // 1.24211113245266e-9 print(numToString); // 1.24211113245266e-9 }- Output: - 1.24211113245266e-9 1.24211113245266e-9
To convert a string without scientific notation, You can do it with toStringAsFixed() method or decimal parse method
- Using toStringAsFixed() Method - To avoid scientific notation and retain precision, you can utilize the - toStringAsFixed()method, which allows specifying the number of fraction digits.- String toStringAsFixed(int fractionDigits)- Here is a toStringAsFixed example - void main() { double number = 0.00000000124211113245266; String numToString = number.toStringAsFixed(20); print(numToString); // 0.00000000124211113245 }
The limitation of toStringAsFixed() is that it only supports up to 20 fraction digits. Attempting to use more than 20 digits will result in a below error.
Uncaught Error: RangeError (fractionDigits): Invalid value: Not in inclusive range 0..20: 23
Next, use a decimal package
- Using the Decimal Package - For more robust handling of numbers, you can utilize the - decimalpackage.- Import decimal package
- Convert to Decimal from double using Decimal.parse() method
- Finally, Convert decimal to String with append syntax
 - Here is an example code - import 'package:decimal/decimal.dart'; void main() { double number = 0.00000000124211113245266; Decimal decimal = Decimal.parse(number.toString()); String str = '${number}'; print(str); // 0.00000000124211113245266 }
Conclusion
In this tutorial, we’ve learned various methods to convert strings to doubles and vice versa in Dart. Additionally, we explored techniques to convert long double fractions into strings without scientific notation, ensuring precision and clarity in our numeric representations.
