我有一组双倍值,它们按小数点分割,前面加了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);
}
}
答案 0 :(得分:0)
你必须区分对象与它的字符串表示。
double
甚至不是十进制数,当您在标准输出中打印它时,它会转换为十进制数,然后进行格式化。
Java会隐式执行此操作,并在将任何类型打印到控制台之前将其转换为默认字符串表示形式。
正如许多人所说,如果你需要,你必须格式化输出。