我正在使用模板表达式来生成文件。例如:
def generateStuff(MyObject in) {
'''
This is the wrong value: «calculatedoubleValue(in.doubleValue)»
'''
}
doubleValue
的值为double
。但是生成器生成一个逗号而不是一个点,作为分隔符。
我也尝试过使用DecimalFormat
,例如:
def generateStuff(MyObject in) {
var df = new DecimalFormat("0.000");
var calculated = calculatedoubleValue(in.doubleValue)
'''
This is the wrong value: «df.format(calculated)»
'''
}
但不幸的是它仍然会产生一个逗号。我想知道,因为它只发生在一些价值观而不是全部,尽管我只与double
合作。另一个奇怪的事情是,它在调试(运行时Eclipse应用程序)时会生成点,但在将应用程序导出为Eclipse产品后会产生逗号。
原因可能是什么?
答案 0 :(得分:0)
在模板表达式中,对任何值调用toString()(参见StringConcatenation)。 Double.toString将始终使用'。',因此问题必须在其他地方。 也许问题出在你的'calculatedDouble'方法中?
答案 1 :(得分:0)
虽然我没有太多关于您的环境的信息,但根据您的示例代码,您不直接使用Double.toString()(它总是使用.
作为小数分隔符)但是{{1}这是区域敏感的。
使用DecimalFormat(String)构建DecimalFormat
时,它将使用默认的"格式区域设置"。在某些区域设置中,小数点分隔符为DecimalFormat
(例如英文),但在其他区域设置中为.
(例如匈牙利语)。有关详细信息,请参阅API docs。
针对您的问题提出的解决方案:
真实代码:
,