首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串到BigNumber的转换,一个特殊的解决方案

字符串到BigNumber的转换,一个特殊的解决方案
EN

Stack Overflow用户
提问于 2012-05-16 23:27:55
回答 2查看 265关注 0票数 0

我正在编写一个Java程序来处理一些伪xml格式的电子税务表单。

由此产生的要支付或退还的税额格式如下:13个字符的无符号整数长字符串,其中最后两个表示美分,即两个小数位。结果是正的(付款)还是负的(退款)在其他地方显示,所以它在这里不相关。

我需要将这个字符串转换成BigNumber,并得到了下面的解决方案,这是一个很好的方法吗?你知道更好的解决方案吗?

代码语言:javascript
复制
public class BigDecimalTest {
    public static void main(String[] args) {

        // 0000000043272  for EUR 432.72
        String s = "0000000043272";    

        //mantissa is the amount as-is, exponent-2 since working with 2 decimal places.
        BigDecimal bd = new BigDecimal(s+"E-2"); 

        System.out.printf("%s: BigDecimal %sE-2 toString: %s\n", s, s, bd.toString());
    }
}
EN

回答 2

Stack Overflow用户

发布于 2012-05-16 23:37:49

您还可以使用:

代码语言:javascript
复制
BigDecimal bd = new BigDecimal("1234").movePointLeft(2);

创建第二个实例,但更具可读性。

票数 2
EN

Stack Overflow用户

发布于 2012-05-17 03:33:29

另一种选择:

代码语言:javascript
复制
// making use of the constructor scale parameter
BigDecimal bd = new BigDecimal(new BigInteger(s), 2);  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10621753

复制
相关文章

相似问题

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