在vb.net中将小数转换为空字符串

时间:2011-10-31 16:26:26

标签: vb.net

我确信这很简单,但我很难完成这项工作,我尝试过使用convert.tostring,decimal.tostring,ctype(object,type)和cstr(object),但没有成功。我想我正在尝试将decial对象更改为字符串对象,然后为其指定一个空字符串值,但始终会出现类型不匹配错误。

Dim testdecimal as decimal = 0.0
testdecimal = Cstr(testdecimal)
testdecimal = string.empty

4 个答案:

答案 0 :(得分:1)

您的变量是Decimal 它不能保持一个字符串。

您需要声明一个单独的变量As String来保存字符串。

答案 1 :(得分:0)

您无法将小数转换为空字符串。我不知道你为什么需要这样做,但我会改用object

Dim test As Object = 10.12345
test = "Hi"
test = String.Empty;

看起来你只需要创建一个数字的字符串表示,你可以这样做:

'create a decimal variable
Dim testDec As Decimal = 10.12345

'convert decimal to string and then set to empty string
Dim testStr As String = testDec.ToString("N")
testStr = String.Empty

答案 2 :(得分:0)

虽然您无法将十进制变量的值设置为String.Empty,但您可以执行以下操作...

Dim TestDecimal As Decimal = 0.0
Dim strStringValue As String = IIf(TestDecimal = 0.0, "", TestDecimal.ToString())
MsgBox(strStringValue)

答案 3 :(得分:0)

你的问题是CSTR将值转换为字符串而不是对象本身,所以你正在做的是获取一个十进制变量,然后将其值转换为字符串并尝试将字符串放回小数。

Dim testdecimal as decimal = 0.0 'testDecimal is a decimal type and you are assigning a decimal value
testdecimal = Cstr(testdecimal)  'testDecimal is still a decimal but you are trying to put a string in it Here is your first type mismatch
testdecimal = string.empty   ' If this actually had worked it would have made the above line pointless because you just tried to overwrite the value (even though this line did not execute here is your second type mismatch)

您需要做的是:

Dim NewString as String
Dim testdecimal as decimal = 0.0 
NewString = Cstr(testdecimal) 

上面取十进制值并将其转换为字符串,然后将其存储到字符串变量中。

现在针对问题的第二部分,将小数转换为空字符串。这是不可能的,因为0.0转换为字符串仍然是“0.0”string.Empty是“”它只是一个空字符串。

如果您的意思是想要将小数转换为字符串但是如果该值为0.0,那么创建一个空字符串就可以使用IF语句轻松完成。

基本上就是这样做:

Dim NewString as String
Dim testdecimal as decimal = 0.0 

if(testdecimal =0.0) Then
NewString = String.Empty
Else
NewString = Cstr(testdecimal) 
END IF