将支票转换为双精度至多精度

时间:2018-08-01 03:21:31

标签: double long-integer

如下面的代码所示,如​​果超出范围,则应在投射时返回正确的long值而不会获得随机数。但是,这些代码根本无法执行最小值吗?

System.out.println(Double.MIN_VALUE < Long.MAX_VALUE);//this prints true so it should at the min value be in range meaning normal casting should work
public static long castLong(double d)
{
    if(d > Long.MAX_VALUE)
        return Long.MAX_VALUE;
    else if(d < Long.MIN_VALUE)
    {
        System.out.println("here");
        return Long.MIN_VALUE;
    }
    return (long)d;
}

根据上面的代码,即使值在范围内也不能正确转换,它应该强制转换为0。所以我想对上述函数做一个double / float转换为字符串然后如何将字符串转换为长字符串,因为它会显示“ 4.9E-324”。那么用零填充E呢?或者我应该怎么做才能在转换时在最大/最小长值范围内转换它?

0 个答案:

没有答案