我是android开发的初学者。如何将双数据类型,即56.32534转换为56.33?但我想把它变成一个双变量。我知道一种方法,但它需要String。
Double value = 56.32534;
DecimalFormat df = new DecimalFormat("0.##");
String newvalue = df.format(value);
此处,newvalue
是一个字符串。但是我想把它带成双数据类型。
我需要使用它的数值,而不仅仅是用于显示目的。
答案 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;
}
}
}
我认为它有效。不能测试它,因为我在我的手机上