gpt4 book ai didi

java - 从字符串转换为 double 删除尾随零

转载 作者:搜寻专家 更新时间:2023-11-01 01:52:41 25 4
gpt4 key购买 nike

我正在尝试将 double 列表从字符串格式转换为 double 格式。我通过将它们放入列表并使用 Double.parseDouble(string) 方法来做到这一点。

这适用于大多数数字,但当 double 包含尾随零时它会产生不需要的输出 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

public static void main(String[] args) {
String[] values = {"124.50", "45.801", "-15.210"};
List<MyDouble> nums = new ArrayList<MyDouble>();

for(String s: values)
nums.add(new MyDouble(s));
Collections.sort(nums);

for(MyDouble d: nums){
System.out.print(d + " ");
}
}

static class MyDouble implements Comparable<MyDouble> {
final double val;
final String string;
MyDouble(String str) {
string = str;
val = Double.parseDouble(str);
}

@Override
public String toString() {
return string;
}

@Override
public int compareTo(MyDouble o) {
return (int) (val - o.val);
}
}

结果:

-15.210 45.801 124.50

关于java - 从字符串转换为 double 删除尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21107699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com