用小数点从long转换为double

时间:2015-02-13 01:31:15

标签: java long-integer

我有一些数字作为长类型我想将其转换为具有特定小数点数的两倍。

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

1 个答案:

答案 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