我有一些XML文件包含以'。'存储的十进制数字。作为小数分隔符。我创建了Excel工作簿,用于编辑该XML中的数据。 MSXML用于从XML读取数据,然后在工作表中显示。一旦存储了数据,我就会使用从表中读取的新值来修改DOM结构,并保存XML。
问题在于,当我将十进制数转换回字符串时,要将它们保存为XML中的值,将使用用户在Windows区域设置中指定的小数点分隔符。
我需要一种强制存储带有'。'的十进制数字的方法。在所有情况下作为小数分隔符。这可能吗?
答案 0 :(得分:7)
如何使用新值修改DOM结构 - 以编程方式?怎么样?
您是否可以使用Format(Cell.value, "#0.0")
?另请尝试Format(CDbl(Cell.Value), "#0.0")
。如果这不起作用,你可以投入Replace(Value, ",", ".")
吗?如果您没有使用数千个分隔符,这应该没问题。
答案 1 :(得分:3)
使用Str
功能。它仅将句点.
识别为有效的小数点分隔符。
Dim d as Double
Dim s as String
d = 3.25
s = Str(d)
' s is now " 3.25"
请注意Str
为数字符号保留一个前导空格。如果您不想在正数上有前导空格,只需Trim
结果:
s = Trim(Str(d))
' s is now "3.25"
答案 2 :(得分:1)
@ Jean-Francois,因为我们谈论i18n你应该使用 CStr (用于国际申请)功能而不是 Str (其中.dot是浮点数的分隔符) ,在逗号的法语中使用不多,是一个分隔符ex: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