将字符串转换为double

时间:2017-04-24 10:10:40

标签: vb.net

可能是非常简单的问题,但仍在努力解决这个问题。我以这种格式提供了许多以字符串形式提供的输入双精度数:

SELECT [dbo].[Order_Header].[Order_No],
ISNULL([dbo].[User].Id, [dbo].[Guest].id) as 'Id',
ISNULL([dbo].[User].Email, [dbo].[Guest].Email) as 'Email'
FROM [dbo].[Order_Header]
LEFT JOIN [dbo].[User]
ON [dbo].[Order_Header].User_Id = [dbo].[User].Id
AND [dbo].[Order_Header].User_Id <> 0
LEFT JOIN [dbo].[Guest]
ON [dbo].[Order_Header].Guest_Id = [dbo].[Guest].Id
AND [dbo].[Order_Header].Guest_Id = 0

在我的开发系统上,当我将其转换为:

0.99
0.456
etc..

很好,但是在制作时我得到CDbl(0.456)

我不确定,但我打赌不同的系统符号,如点或逗号。

有没有办法独立于系统配置并将我的输入字符串交换为正确识别为double?

我试过这种方法,似乎它正在发挥作用。这是正确的方法吗?

SystemInvalidCastException.

1 个答案:

答案 0 :(得分:2)

是的,这是你正常的方式。

问题确实与文化有关。如果您没有指定任何文化,它将默认为系统的文化,这很可能是代码在一个系统上工作但在另一个系统上工作的原因。

通过指定不变文化,您可以确保系统文化不再对转换产生影响。