0

我想将 Double 转换为字符串。并且只显示小数位。

在这条路上:

Double: 123.465
String: 46

Double: 1123.465
String: 46

Double: 123.46555987
String: 46

现在是我的问题,我该怎么做,最好的方法是什么?

4

5 回答 5

0
Double: 123.465
String: 46

Double d = new Double(123.465);
String str = String.valueOf(d);
Sytem.out.println(str.substring(str.lastIndexOf("."),str.lastIndexOf(".")+2));
于 2013-03-18T11:59:20.500 回答
0

不完全是最好的方法,但它有效。只需将 123.456 更改为您希望的任何值,也许将其放入方法中。

public class Test {
    public static void main(String args[]) {
        double fractionalPart = 123.456 % 1;
        DecimalFormat twoDForm = new DecimalFormat("#.00");
        System.out.println(String.valueOf(
                Double.valueOf(twoDForm.format(fractionalPart))).substring(2));
    }
}
于 2013-03-18T11:53:53.193 回答
0

Double可以使用toString(). 检查 API 文档。如果您有,那么自 Java 1.6 及更高版本以来double,它可能会自动拆箱为value。Double要获得小数,您可以使用第二个参数substring来限制输出。

 s.substring(s.indexOf("."), s.indexOf(".")+2)

或使用四舍五入到小数点后两位

Double.valueOf(Math.round((d/(long)d)*100)/100).toString() 
于 2013-03-18T11:51:08.467 回答
0

这应该可以帮助你

public static int twoDecimal(double original)
{
    BigDecimal bd = new BigDecimal(original % 1);
    BigDecimal rounded = bd.setScale(2, BigDecimal.ROUND_DOWN);

    return (int) (rounded.doubleValue() * 100);
}
于 2013-03-18T12:01:13.950 回答
0

这可能有效:

Double d = 123.4567;
String stringRep = Double.toString(d).split(".")[1];
//Print or use stringRep
于 2013-03-18T11:56:17.133 回答