如何将任何双数据类型转换为0.00(小数点后2位)格式,采用另一种双数据类型(Android / Java)?

时间:2015-05-28 23:12:03

标签: java android number-formatting

我是android开发的初学者。如何将双数据类型,即56.32534转换为56.33?但我想把它变成一个双变量。我知道一种方法,但它需要String。

Double value = 56.32534;
DecimalFormat df = new DecimalFormat("0.##");
String newvalue = df.format(value);

此处,newvalue是一个字符串。但是我想把它带成双数据类型。

我需要使用它的数值,而不仅仅是用于显示目的。

2 个答案:

答案 0 :(得分:1)

您可以使用Math.round()

double value = 56.32534;
double rounded = Math.round(100 * value) / 100.0;

乘法然后除以100是必要的,因为Math.round()舍入到最接近的long值。

如果要将其概括为可变位数,可以使用以下内容:

public double round(double value, int digits) {
    double scale = Math.pow(10, digits);
    return Math.round(value * scale) / scale;
}

如果digits不是肯定的,这甚至会有效;如果digits为0,它将舍入到最接近的整数,如果digits为-1,则舍入为最接近的整数,如果digits为-2,则为最接近的100,等等。

答案 1 :(得分:-1)

我们需要更精确一点你想做什么。你想以那种方式显示它还是只是以这种方式使用它的数值?

如果是显示屏,那么您的解决方案就可以了。之后你总是可以从字符串中找回浮点数。

另一方面,如果你想将它用作数值,你可以做的是

namespace SCM_Addin.Funds
{
class TrackFund : Fund
{

    public double entryPrice { get; set; }
    public double currentPrice { get; set; }

    public TrackFund(String sym, double entryP, double curP) : base(sym)
    {

        this.entryPrice = entryP;
        this.currentPrice = curP;

    }

}
}

我认为它有效。不能测试它,因为我在我的手机上