>  기사  >  백엔드 개발  >  C#에서 문자열을 Double로 변환

C#에서 문자열을 Double로 변환

WBOY
WBOY원래의
2024-09-03 15:17:06591검색

In C#, almost all types of data can be converted to any other type. In the same way, we can convert a string to double using a method present inside the “Convert” class called ToDouble() method. There are many overloaded forms of this method and among those overloaded forms, we have two forms to convert a string representation of a number to its equivalent double-precision floating-point number.

Those two overloaded forms are as follows:

  • ToDouble(String);
  • ToDouble(String, IFormatProvider);

Both these methods return a double value after converting the string value to double.

Syntax with Explanation:

The syntax of Convert.ToDouble() method in both its overloaded forms for converting a string to double is as follows:

public static double ToDouble(string strValue);

In the above syntax, ToDouble() method takes one argument of type string (strValue) which is nothing but a string containing a number to convert to double.

public static double ToDouble(string strValue, IFormatProvider provider);

In the above syntax, ToDouble() method takes two arguments; the first is the string representation of a number which needs to be converted to double and second is an object which provides culture-specific formatting information. After conversion both these methods return the equivalent double value for the string passed as the argument.

How to Convert String to Double in C#?

In C#, the “System” namespace contains a class called “Convert” which contains the ToDouble() method in many overloaded forms to convert the specified type of data to its equivalent double value. Among these overloaded forms, two forms allow us to convert a string representation of a number to its equivalent double-precision floating-point number.

These two forms are as follows:

1. ToDouble(String);

Let us understand the working of the above method with the help of the below example:

double doubleVal = Convert.ToDouble("855.65");

In the above statement, we have passed a number i.e. “855.65” as a string to ToDouble() method which will be converted to double by the method and the resulted value will be stored in a variable of type double (doubleVal).

2. ToDouble(String, IFormatProvider);

Let us now understand the working of the above method with the help of the below example:

NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
provider.NumberGroupSeparator = ",";
double doubleVal = Convert.ToDouble("855.65", provider);

In the above statements, we first created an object of IFormatProvider using the class NumberFormatInfo which implements IFormatProvider. Then, we set some important properties for this object like NumberDecimalSeparator and NumberGroupSeparator.

  • NumberDecimalSeparator is used to get or set a string that can be used as the decimal separator in numeric values.
  • NumberGroupSeparator is used to get or set a string that separates groups of digits at the left of the decimal in numeric values.
  • Now, Convert.ToDouble() method will convert the given string to double using the formatting information provided by the object of NumberFormatInfo and the resultant value will be stored in the variable “doubleVal”.
  • If the value of the string in both of the above methods is “null” then these methods will return zero.
  • In C#, there exists another common way of converting a string to double which can be done by using Double.Parse() method and Double.TryParse() method.
  • Double.Parse(String) method works similarly to Convert.ToDouble() method as it takes a string representation of a number as an argument and converts it to a double-precision floating-point number. The difference is that if the string is “null” then this method does not return zero instead it returns ArgumentNullException.
  • Double.TryParse(String, Double) method works the same as Double.Parse() method except it returns a Boolean value which indicates whether the conversion has been done successfully or not. On success, it returns true and the respected double value gets stored in the ‘out’ parameter.

Examples of Convert String to Double in C#

Example showing the conversion of string to double using Convert.ToDouble() method.

Example #1

Code:

using System;
using System.Globalization;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
string[] strValues = {"85545.624", "34567.6790",
"5689.1234"};
double doubleVal = 0;
try
{
//creating an object of NumberFormatInfo
NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
provider.NumberGroupSeparator = ",";
Console.WriteLine("Equivalent double value of " +
"specified strings: ");
for (int i = 0; i < strValues.Length; i++)
{
//converting string to double
doubleVal = Convert.ToDouble(strValues[i], provider);
//displaying the converted double value
Console.WriteLine("{0}", doubleVal);
}
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
}
}

Output:

C#에서 문자열을 Double로 변환

Example #2

Example showing the conversion from string to double using Double.TryParse() method.

Code:

using System;
using System.Globalization;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
string[] strValues = {"2,6893.57", "$2,6893.57", "-2.948e6",
"-1.79769313486232E+308", "456BE6",
null, String.Empty, "JKLMN"};
Double doubleVal = 0;
Console.WriteLine("Equivalent double value of " +
"specified strings: ");
Console.WriteLine("\n");
for (int i = 0; i < strValues.Length; i++)
{
if (Double.TryParse(strValues[i], out doubleVal))
//displaying the converted double value
Console.WriteLine("'{0}' -> {1}", strValues[i], doubleVal);
else
Console.WriteLine("Not able to convert '{0}'", strValues[i]);
}
Console.ReadLine();
}
}
}

Output:

C#에서 문자열을 Double로 변환

Example #3

Example showing scenario when the string to be converted to double is either ‘null’ or empty.

Code:

using System;
using System.Globalization;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
string[] strValues = {null, String.Empty};
Double doubleVal = 0;
//creating an object of NumberFormatInfo
NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
provider.NumberGroupSeparator = ",";
Console.WriteLine("Result of conversion using " +
"Double.TryParse() method: ");
Console.WriteLine("\n");
for (int i = 0; i < strValues.Length; i++)
{
if (Double.TryParse(strValues[i], out doubleVal))
{
Console.WriteLine("'{0}' -> {1}", strValues[i], doubleVal);
}
else
{
Console.WriteLine("Not able to convert '{0}'", strValues[i]);
}
}
Console.WriteLine("Result of conversion using " +
"Convert.ToDouble() method: ");
Console.WriteLine("\n");
try
{
for (int i = 0; i < strValues.Length; i++)
{
doubleVal = Convert.ToDouble(strValues[i], provider);
Console.WriteLine("'{0}' -> {1}", strValues[i], doubleVal);
}
Console.ReadLine();
}
catch(Exception exception)
{
Console.WriteLine(exception.Message);
Console.ReadLine();
}
}
}
}

Output:

C#에서 문자열을 Double로 변환

결론

  • 문자열 값은 Convert.ToDouble() 또는 Double.Parse() 메서드를 사용하여 double로 변환할 수 있습니다.
  • 이러한 메소드는 숫자의 문자열 표현을 입력으로 사용하고 이에 상응하는 배정밀도 부동 소수점 숫자를 반환합니다.
  • 문자열 인수가 숫자를 유효한 형식으로 나타내지 않으면 두 메서드 모두 FormatException을 반환합니다.

위 내용은 C#에서 문자열을 Double로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C# 문자열 PadLeft다음 기사:C# 문자열 PadLeft