我有一些数字作为长类型我想将其转换为具有特定小数点数的两倍。
public class Test
{
public static void main(String args[])
{
long l = 14253638;
DecimalFormat df = new DecimalFormat("00.0000");
System.out.println(df.format(l));
}
}
预期印刷值:14.2536
但实际印刷值:14253638.0000
答案 0 :(得分:1)
我们可以通过BigDecimal
:
long l = 1443156430;
BigDecimal bd = BigDecimal.valueOf(l).movePointLeft(4);
结果:
144315.6430
将其转换为double
:
double result = bd.doubleValue();
但请注意,使用BigDecimal
可能无法准确表示double
。
编辑:目前还不是很清楚你的要求是什么 - 如果它是一个2位数后跟4位数小数点,那么你可以操纵一个字符串长度:
String truncated = String.valueOf(l).substring(0, 6);
double result = new BigDecimal(truncated).movePointLeft(4).doubleValue();
这会产生:
14.4315