字符串转为双倍数无效?[英] String to Double not Valid?

问题描述

你好,
作为我使用 vb 2008 和 Office 2007 持续测试 Excel 自动化的一部分,我决定在我的本地计算机中创建一个虚拟机.

我仍在尝试找到有关我在另一个线程中发布的 InterOp 程序集的解决方案.

在我的查询表单中,我将文本框值声明为字符串,然后转换为双精度并在我的 Select 语句中使用,

Dim Rate1 as String = Me.Textbox6.Text
Dim nRate as Double = CDbl(Rate1)

在我的本地测试了这个并且工作正常.创建了一个设置并将设置复制到我的虚拟机并安装它,程序运行正常,我可以生成视图(DGV)和输出(文本文件).一些报告使用 TextBox6 及其值,但这是我收到此错误"Convert String to double is Invalid?"的地方,

在先决条件组件中,我检查了这个;

Windows Installer 3.1<br />
.Net Framework 3.5 SP1<br />
Microsoft Office 2007 Primary InterOp Assemblies


我还在我的虚拟机中安装了 windows xp 和 office 2007.

推荐答案

嗯,并不是所有的 String 都兼容 Double.例如,如何将"Hi"或空 String 转换为数值?
我当然看不到你的数据集,但那里似乎有一些非数字值.
安全的是调用 Double.TryParse[^].
用法如下:
Dim d As  ' 如果只有 C#,我们就会有 Double d :)If Double.TryParse(Me.TextBox6.Text, d) 然后'字符串转换成功.' 你的变量 d 现在有了转换后的值.否则'字符串不是数值.' d 什么都没发生.结束 如果

使用
Dim nRate as Double=Double.Parse(Rate1 );

您必须在转换之前对文本框文本进行一些验证.

如果 TextBox6 为空,CDbl 将抛出您所看到的错误.

如果改用 Double.Parse() 或 .TryParse() 会更好,但您仍然必须确保文本框有一个值,然后再尝试解析它.

本文地址:https://www.itbaoku.cn/post/1394968.html