【问题标题】:Convert string to decimal to string and back to decimal [duplicate]将字符串转换为十进制到字符串并返回十进制[重复]
【发布时间】:2024-01-02 23:03:01
【问题描述】:

我想将一个字符串转换为小数,然后再转换为字符串,然后再转换为小数。

我试过了:

Dim s As String = "0.7655"

CDec(sDec).ToString("0.00")  'results in: 7653,00
CDec(sDec).ToString 'results in: 7648
CDec(sDec).ToString("N") 'results in: 7.653,00

所以这些都不起作用!

有没有简单的函数可以将精确的十进制再次转换为其字符串表示?对于这么简单的任务,似乎工作量太大了!

最好不要格式化字符串,因为在这种情况下,我似乎事先知道生成的字符串应该有多少个字符。 转成字符串后,我还想再转回小数。

【问题讨论】:

  • 它们确实有效,但您需要指定文化代码。快速搜索 SO 会找到很多解决方案

标签: vb.net string type-conversion decimal


【解决方案1】:

在您当前的文化中,小数点分隔符可能是逗号而不是点。使用不变的文化将始终使用点:

Dim s As String = "0.7655"

Dim decValue As Decimal = Decimal.Parse(s, System.Globalization.CultureInfo.InvariantCulture)
Console.WriteLine(decValue.ToString())

【讨论】:

    【解决方案2】:

    您应该能够使用 Parse 方法获得答案。

        Dim s As String = "0.7655"
        Dim c As Decimal = Nothing
    
        c = Decimal.Parse(s)
    
        Console.WriteLine(c)
    

    然后您可以使用ToString 方法转换回字符串。

    【讨论】:

      最近更新 更多