J2ME - 数字格式

发布于 2024-08-18 18:24:32 字数 654 浏览 5 评论 0原文

我需要在 J2ME 中使用模式格式化十进制数字,就像 java 十进制格式

我看到一个端口 格式/NumberFormat/十进制格式

您能建议准备好使用的实现或库吗?

谢谢!

I need to format decimal numbers with patterns in J2ME just like java DecimalFormat.

I see an option to port Format/NumberFormat/DecimalFormat.

Can you suggest ready to use implementation or library?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮萍、无处依 2024-08-25 18:24:32

因此,我设法移植桌面 Java 实现:bbnumberformat:

    String[] patterns = new String[] { "#,#00.00#", "0.0;(0.0)",
            "0.###E0" };
    DecimalFormat format = (DecimalFormat) DecimalFormat
            .getNumberInstance();
    double value = -12.321;
    for (int i = 0; i < patterns.length; i++) {
        String pattern = patterns[i];
        format.applyPattern(pattern);
        String text = "Pattern: " + pattern 
        + " Sample: "+format.format(value)+"\n";
        add(new LabelField(text));
    }

替代文本 http://img220.imageshack.us/img220/6245/9000.jpg

So, I've manage to port desktop java implementation: bbnumberformat:

    String[] patterns = new String[] { "#,#00.00#", "0.0;(0.0)",
            "0.###E0" };
    DecimalFormat format = (DecimalFormat) DecimalFormat
            .getNumberInstance();
    double value = -12.321;
    for (int i = 0; i < patterns.length; i++) {
        String pattern = patterns[i];
        format.applyPattern(pattern);
        String text = "Pattern: " + pattern 
        + " Sample: "+format.format(value)+"\n";
        add(new LabelField(text));
    }

alt text http://img220.imageshack.us/img220/6245/9000.jpg

酒废 2024-08-25 18:24:32

下面的代码显示了如何将双精度数舍入为 n 位小数:

private double round(double num,int numDecim){
    long p=1;
    //next line – calculate pow(10,brDecim)
    for(int i=0; i<numDecim; i++)p*=10;
    return (double)(int)(p * num + 0.5) / p;
}

您可以使用 double p=1.0;p*=10.0; 代替。

The code below is method that shows how to round a double to n decimals:

private double round(double num,int numDecim){
    long p=1;
    //next line – calculate pow(10,brDecim)
    for(int i=0; i<numDecim; i++)p*=10;
    return (double)(int)(p * num + 0.5) / p;
}

You may use double p=1.0; or p*=10.0; instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文