【问题标题】:Java-Returning BigDecimal as String: Returns intJava-将 BigDecimal 作为字符串返回:返回 int
【发布时间】:2015-02-18 07:27:33
【问题描述】:

我正在使用分数来添加到当前的 BigDecimal。它不断返回一个int。不知道我做错了什么。

//within a class function    
public BigDecimal result  = new BigDecimal(1);
int x = 2;
double g = 1/x;
result = result.add(new BigDecimal(g));
String s = result.toString();
System.out.println(s);

【问题讨论】:

    标签: java string int tostring bigdecimal


    【解决方案1】:

    您必须执行以下操作:

    BigDecimal result = new BigDecimal(1);
    int x = 2;
    double g = 1.0 / x;  //<---------- 1.0
    result = result.add(new BigDecimal(g));
    String s = result.toString();
    System.out.println(s);
    

    然后会有一个双倍的结果

    【讨论】:

    • 我在 Testclass 中执行了确切的代码。结果是 1.5。您是否尝试过完全相同的代码?你的结果是什么?
    • 将 toString() 替换为 format()。但是,我得到的是 2.xxxxxx,而不是 2.000000.... 一个 int 后跟一个小数和零,而不是一个 BigDecimal 作为字符串。
    • 对不起,我不明白你的意思。你想在哪里得到“2.0000 ...”?结果应该是1.5。 BigDecimal 没有“format()”方法。 (你说你用 format() 替换了 toString())或者我弄错了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多