如何将带小数点的字符串转换为带小数逗号的double?

时间:2018-11-07 12:30:53

标签: c#

我正在为德国客户开发一个网站。在德国,他们使用逗号作为小数点分隔符。

我使用WebMethod从SQL中获取值,然后构建一个JSON对象以在网站上显示数据。使用C#SqlCommand,我从SQL获得了字符串形式的值。我想将此值保存到一个双变量中。

这是显示我想做什么的代码示例:

    NumberFormatInfo nfi = new CultureInfo( "de-DE", false ).NumberFormat;
    nfi.NumberDecimalSeparator = ","; // Displays the value with a comma as the separator.

    string value ="15.95"; //value from SQL
    string valueInString = "";
    double valueInDouble = 0;

    valueInString = Convert.ToDouble(value.ToString()).ToString( "N", nfi );
    valueInDouble = Convert.ToDouble(value.ToString()).ToString( "N", nfi ); //Error
    valueInDouble = Convert.ToDouble(valueInString,nfi);
    Console.WriteLine( valueInString ); // returns 15,95. But it is a string
    Console.WriteLine( valueInDouble ); // returns 15.95. the comma is reverted back to dot

我需要将数据保存为两倍。我该如何解决?

1 个答案:

答案 0 :(得分:5)

double不包含有关如何(直观地)将小数部分与整数部分分开的任何信息。如果您打印的双精度字体没有任何特定的区域性格式信息,那么您将获得标准的.作为分隔符。