0

我有一个价格列作为文本类型的访问数据库我想将其转换为双精度以进行一些比较问题是该列的值如下所示:

5.22
2.5$
62.5
34.6$
45.3
65.9$

那么Convert.ToDouble对于不包含“$”符号的值是否可以正常工作,那么如何在将文本转换为双精度之前从文本中删除 $ 符号?

所以基本上这个想法是

检查是否有“$”

从文本中删除“$”

隐蔽到双...

最好从数字中删除除小数点以外的任何内容

4

2 回答 2

0

不要Double用于货币。使用Decimal.

抱歉,我来自 C#,但是如何:

string str = "34.6$";
if (str.EndsWith("$"))
    str = str.Substring(0, str.Length-1);

var value = Decimal.Parse(str);

粗略转换:

Dim str As String = "34.6$"
If str.EndsWith("$") Then
    str = str.Substring(0, str.Length - 1)
End If

Dim value = [Decimal].Parse(str)
于 2012-08-03T03:32:22.233 回答
0

您可以使用String.Replace. 无需检查“$”。如果它在那里,它将被替换。

    Dim value1 As String = "12.7$"
    Dim value2 As String = value1.Replace("$", "")
    MessageBox.Show(value2)
于 2012-08-03T03:33:24.690 回答