首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java应用程序从Windows移植到Linux字符格式

将Java应用程序从Windows移植到Linux字符格式
EN

Stack Overflow用户
提问于 2017-03-13 13:36:38
回答 1查看 272关注 0票数 0

我用Java8在Windows7下开发了一个web应用程序,生成了war文件,并将它部署到Ubuntu下的Tomcat8上;一切都很好,但是当我格式化和打印数字时,我得到了不同的输出。例如,在Windows中,我打印"74,00“,而在Linux中,我得到"74..00”。这是我的代码:

//调用法

代码语言:javascript
复制
formatCurrency(String.format("%.2f", amount));

//方法

代码语言:javascript
复制
private String formatCurrency(String number){
    String formattedNumber = "";
    try {
        String[] support = number.split(",");
        String intero = support[0];
        if (intero.length() > 3){
            formattedNumber = intero.substring(0, intero.length() - 3) + "." + intero.substring(intero.length() - 3);
            if (intero.substring(0, intero.length() - 3).length() > 3){
                formattedNumber = intero.substring(0, intero.length() - 6) + "." + formattedNumber;
            }
        }
        else
            formattedNumber = support[0];

        formattedNumber = formattedNumber + "," + support[1];
    }
    catch (Exception ex) {
        System.out.println("errore in stampa " + ex);
    }
    return formattedNumber;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-13 13:44:52

默认情况下,Java的格式化函数将使用默认区域设置,而且很可能Windows系统上的默认区域设置与Linux系统上的默认区域设置不同。您应该使用变体,它允许您指定所需的区域设置。

代码语言:javascript
复制
formatCurrency(String.format(Locale.US,"%.2f", amount));

显然,为您的使用使用适当的环境。

顺便提一句,这不是非常复杂吗?

如果--正如我所怀疑的--唯一的目标是获得数千个分离器,那么我可以建议这种更简单、更不容易出错的方案吗?

代码语言:javascript
复制
private String formatCurrency(double amount) {
    NumberFormat nf = NumberFormat.getInstance(Locale.ITALIAN);
    nf.setGroupingUsed(true); //force thousands separators, for Locale.ITALIAN it's not even needed
    return nf.format(amount);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42765020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档