vb.net - VB列表中从'double'到'decimal'和'string'到'double'的转换错误
问题描述
所以我创建了这个名为“菜单”的列表,其中存储了菜单项的名称和价格。我已经使用我声明name
为string
和price
as的类“MenuItem”完成了此操作decimal
。但是我在列表中收到了这个错误,它不能从“double”转换为“decimal”,也不能从“string”转换为“double”。我确实有严格的选项,但即使关闭它,我在运行代码时也会收到此错误。
我试过像这样使用 cdbl() 函数:.cost =cdbl(2.0 * txtburger.text)
但它仍然不起作用。
Dim menu As New List(Of MenuItem) From
{
New MenuItem With {.Name = "Burger", .Cost = 2.0 * txtburger.Text},
New MenuItem With {.Name = "wrap", .Cost = 2.0 * txtwrap.Text},
New MenuItem With {.Name = "Parmesan", .Cost = 2.5 * txtparmesan.Text},
New MenuItem With {.Name = "Stirfry", .Cost = 3.0 * txtstirfry.Text},
解决方案
.cost =cdbl(2.0 * txtburger.text)
2.0
是一个数字
txtburger.Text
是一个字符串
字符串和数字不能相乘。CDbl 尚未参与;number * string
VB在将结果传递给 CDbl 之前尝试执行您的操作
仅将文本部分转换为双精度,以便最终执行number * number
. 看看Convert.ToDouble和Convert.ToDecimal方法
如果您仍在为此苦苦挣扎,请扔掉所有文本框并用 nunericupdown 控件替换它们,这样您就可以使用它们的 Value 属性(它是一个数字)而不是文本框的 Text (它是一个字符串)
推荐阅读
- html - div表的边框间距问题
- unit-testing - 如何检查 Java 8 Stream 是否关闭?
- php - codeigniter hook post并获取数据进行安全处理(SQL注入)
- r - 从 GRIB 文件中获取特定位置的数据
- ios - iOS Security.framework arm64 架构问题
- netlogo - 网络标志中的补丁可以有两种颜色,有时隐藏一种吗?
- css - 如何组合两个 SCSS 选择器?
- ios - 将字符串拆分为数组数组
- cloud - 当我想在 SAP Cloud Platform 中运行 UI5 应用程序时缺少功能的问题
- vba - 导入数据后刷新表单