免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3548 | 回复: 6
打印 上一主题 下一主题

DecimalFormat 分隔符的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-22 12:22 |只看该作者 |倒序浏览
public class DecimalTest {

        public static void main(String args[]){
                double avprice=28234.2534;
                java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
                String aveprice=df.format(avprice);
                System.out.println(aveprice);
        }
}

按照格式, 分隔符应该是"." 隔开,但是我把控制面版语言设置里面,分隔符改成",",结果就成了","隔开.
不知有什么办法可以解决这个问题不? 保持控制面版","的状态

论坛徽章:
0
2 [报告]
发表于 2007-11-22 12:46 |只看该作者
这个是为了保持和操作系统的设置一致,通常不强行指定一个。

虽然理论上可以自己创建一个DecimalFormatSymbols对象,然后调用DecimalFormat.setDecimalFormatSymbols()。但是不建议你这么做。最好还是分析一下需求,看看为什么会出现这种违反一般的G11n的设计原则的事情出现。

论坛徽章:
0
3 [报告]
发表于 2007-11-22 12:48 |只看该作者
因为现在测试阶段,客户把分隔符修改之后,数据就出现异常.
不知有什么办法能解决这个问题. 

论坛徽章:
0
4 [报告]
发表于 2007-11-22 14:26 |只看该作者
解决, 代码如下:

import java.text.DecimalFormatSymbols;
import java.util.Locale;


public class DecimalTest {

        public static void main(String args[]){
                Locale loc=Locale.ENGLISH;
                DecimalFormatSymbols formatSymbos = new DecimalFormatSymbols(loc);
                double avprice=28234.2534;
                java.text.DecimalFormat df =new java.text.DecimalFormat("#.00", formatSymbos);
                String aveprice=df.format(avprice);
               
                System.out.println(aveprice);
        }
}

论坛徽章:
0
5 [报告]
发表于 2007-11-22 16:12 |只看该作者
这样做就意味着只能处理英文格式的数据了。确定这是用户想要的?

论坛徽章:
0
6 [报告]
发表于 2007-11-22 23:05 |只看该作者
英文格式?
我个人认为, 这样修改后,如果客户端修改十进制的分隔符后,就没有影响了,都是用“.” 隔开.
这样能满足客户的要求

论坛徽章:
0
7 [报告]
发表于 2007-11-23 12:23 |只看该作者
这个分隔符之所以要和操作系统的设置保持一致,是因为G11N(Globalization)设计的要求:
在不同的国家和语言环境里,小数点不是永远都是".",德文就是用","做小数点。

后面这个改过的程序在任何语言的操作系统里都是用"."做小数点。如果这个软件只在中文操作系统使用,是没有问题的。不过那样就没法解释为什么会有用户需要把小数点设置成",",不会是随手改着玩吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP