如何使用 VBScript 将数字格式从英语转换为意大利语?

How to convert format of number from English to Italian with VBScript?

我需要将英文编号转换为意大利语。

我尝试过使用多个替代品,但我认为这不是正确的方法。

price = Replace(price, ".", ",")

问题是,当我的号码太大时,我被替换了好几次,结果出现了错误的号码。

例如:

英文版:3,450.108
替换后:3,450,108(但是错了)
正确格式:3.450,102

如果你想交换 2 个分隔符,你需要为第二个使用临时字符,否则你将无法区分原始的第二个分隔符和替换的第一个分隔符。

price = Replace(price, ".", "_")
price = Replace(price, ",", ".")
price = Replace(price, "_", ",")

不推荐 in an attempt to get the correct format when VBScript can already do it for you using the SetLocale() Function in conjunction with the FormatNumber() Function,它将 return 特定区域设置的该数字的字符串表示形式。

Note: Remember that the actual value and how a value is displayed are two separate things (see the example below).

Option Explicit
Const decimalplaces = 3
Dim price: price = 3450.108 'This is the raw value from your data source.

Call SetLocale("en-gb")
Call WScript.Echo("English (UK) price: " & FormatNumber(price, decimalplaces))
Call SetLocale("it-it")
Call WScript.Echo("Italian price: " & FormatNumber(price, decimalplaces))

输出:

English (UK) price: 3,450.108
Italian price: 3.450,108