我正在尝试将一组以字符串格式表示的双精度浮点数转换为双精度浮点数格式。我将它们放入列表中,并使用
这对于大多数数字有效,但当双精度浮点数包含一个尾随零时,
这将产生输出:
Double.parseDouble(string)
方法进行转换。这对于大多数数字有效,但当双精度浮点数包含一个尾随零时,
parseDouble
方法会将其删除。 我不想删除它。String[] values = {"124.50", "45.801", "-15.210"};
List<Double> nums = new ArrayList<Double>();
for(String s: values)
nums.add(Double.parseDouble(s));
Collections.sort(nums);
for(Double d: nums){
System.out.print(d + " ");
}
这将产生输出:
-15.21 45.801 124.5
但我想要保留末尾的零。使用格式化行的问题在于,当打印值时,我必须指定所需的浮点精度,但我没有任何特定的愿望使数字准确到某个点,只是如果有零存在,就让它们保持原样。
我这样做的方式是否不正确?
double
值和尾随零数的包装类。话虽如此...根据原始字符串,您仍可能遇到精度问题。不过,如果取决于您正在做什么,仅持有对原始字符串的引用可能就足够了。(编辑:哈,看来有人已经发表了这个观点) - Brian Roach