gpt4 book ai didi

excel - VB .NET 中的 CDbl 和小数分隔符 - 有没有办法绕过区域设置?

转载 作者:行者123 更新时间:2023-12-04 21:56:27 25 4
gpt4 key购买 nike

我正在编写一个程序来解析和操作 Excel 工作表中的信息(文本和数字)。关于将单元格数据转换为 Double 变量,我遇到了一个奇怪的问题。大多数时候,由于 Microsoft.Office.Interop.Excel 导入,我使用:

var = CDbl(sheet.Cells(row,column).Value)

但是,我的工作表(由数千行组成)包含用“。”写成的十进制数字。和 ”,”。在我的国家,“,”被认为是小数分隔符,所以任何像“1.23456789”这样的数字都会引发 CDbl 的异常。

我找到了一种解决方法,它包括不使用 .Value 而是使用单元格的 .Text ,并使用 Replace() 摆脱“。”:
var = CDbl(sheet.Cells(row,column).Text.Replace(".", ","))

但是,由于我正在处理的工作表的长度,这大大增加了我的执行时间。最快的方法是什么?有没有办法告诉 Visual Studio 摆脱区域设置并考虑“。”和“”一样吗?还有其他建议吗?

非常感谢。 :)

最佳答案

正确的方法是使用 double.Parse (或 decimal.Parse )具有正确的文化或 NumberFormatInfo .例如,您可以使用德国文化:

Dim deCulture = new CultureInfo("de-DE")
Dim number = Double.Parse(sheet.Cells(row,column).Text, deCulture)

如果输入可能无效,您应该使用 Double.TryParse 反而。

关于excel - VB .NET 中的 CDbl 和小数分隔符 - 有没有办法绕过区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43804147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com