Java 最后一个零从双精度值消失

Java 最后一个零从双精度值消失,java,double,Java,Double,我有一组双精度值,它们被小数点分开,在前面加一个0 e、 g.输入:1229.5-预期输出:0.1229 但是,如果输入值最后为0,例如1270.2,则输出值变为0.127,而输出值应为0.1270 这是我的密码: static double[] data = new double[] {6754.6,7235.9,5432.2,1270.2,5413.6,1099,1018}; public static void main(String[] args) { for(int i=0;

我有一组双精度值,它们被小数点分开,在前面加一个0

e、 g.输入:1229.5-预期输出:0.1229

但是,如果输入值最后为0,例如1270.2,则输出值变为0.127,而输出值应为0.1270

这是我的密码:

static double[] data = new double[] {6754.6,7235.9,5432.2,1270.2,5413.6,1099,1018};

public static void main(String[] args) {
    for(int i=0;i<data.length; i++){
        String outputStr = String.valueOf(data[i]);
        String[] fileNameSplit = outputStr.split("\\.");
        fileNameSplit[0] = "0."+fileNameSplit[0];
        double newData = Double.valueOf(fileNameSplit[0]);
        System.out.println(newData);
    }
}
static double[]data=new double[]{6754.67235.95432.21270.25413.610991018};
公共静态void main(字符串[]args){

对于(inti=0;i,必须区分对象和它的字符串表示形式

double
甚至不是十进制数,在标准输出中打印时,它会转换为十进制数,然后格式化

Java隐式地这样做,并在将任何类型打印到控制台之前将其转换为默认的字符串表示形式


正如许多人所说,如果需要,您必须格式化输出。

为什么要将其转换为双精度格式?您不能打印
fileNameSplit[0]
?您可以使用
DecimalFormat df=new DecimalFormat();df.setMaximumFractionDigits(2);
@Sweeper不,我需要它作为双精度。零不会消失-它只是没有打印出来,因为它被认为不相关。可能是