问题描述
||
我有一些XML文件,其中包含以'。\'作为十进制分隔符存储的十进制数字。我创建了Excel工作簿,用于在该XML中编辑数据。 MSXML用于从XML读取数据,然后将其显示在工作表中。数据存储后,我使用从表中读取的新值修改DOM结构,然后保存XML。
问题是,当我将十进制数字转换回字符串时,要将它们另存为XML值,将使用Windows区域设置中用户指定的十进制分隔符。
我需要一种在所有情况下都以\'。\作为十进制分隔符来强制存储十进制数字的方法。这可能吗?
解决方法
如何以编程方式使用新值修改DOM结构?怎么样?
您可以使用
Format(Cell.value,\"#0.0\")
吗?也尝试Format(CDbl(Cell.Value),\"#0.0\")
。如果那不起作用,您能丢点2英镑吗?如果您不使用数千个分隔符,则应该可以。
, 使用Str
功能。它仅将句点“ 4”识别为有效的小数点分隔符。
Dim d as Double
Dim s as String
d = 3.25
s = Str(d)
\' s is now \" 3.25\"
请注意,“ 3”为数字的符号保留一个前导空格。如果您不希望正数上有前导空格,则将结果减7即可:
s = Trim(Str(d))
\' s is now \"3.25\"
, @ Jean-Francois,因为我们在谈论i18n,所以您应该使用CStr(对于国际应用程序)函数而不是Str(其中。点是浮点数的分隔符,在法语中很少使用逗号是逗号的分隔符,例如:7, 54)
Sub myFunction()
Dim num As Double
Dim str As String
num = 3.251
str = CStr(num) \' convert a number into a String
num = Val(str) \' convert a String into an integer
num = Trim(str) \' convert a String into a Variant
str = Trim(num) \' notice this works the other way around
End Sub