java - 在java中排序 double

标签 java sorting double

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
    BufferedReader in = new BufferedReader(new FileReader(new File(args[0])));
    String line;

    while ((line = in.readLine()) != null) {
        StringTokenizer st = new StringTokenizer(line);
        int len = st.countTokens();
        Double[] seq = new Double[len];
        for (int i = 0; i < len; i++)
            seq[i] = Double.parseDouble(st.nextToken());
        Arrays.sort(seq);
        for (int i = 0; i < len; i++) {
            if (i > 0) System.out.print(" ");
            System.out.print(seq[i]);
        } System.out.print("\n");
    }
}
}

所以我正在尝试解决这个 CodeEval 问题 (https://www.codeeval.com/open_challenges/91/),但我的解决方案并未通过所有测试用例。我认为我的输出方法是正确的(数字之间的空格,尾随换行符)。我无法弄清楚排序或其他任何地方可能发生了什么。

当使用 float 时,解决方案显然也不正确。

最佳答案

我也认为这是一个打印问题。根据示例 I/O,输出似乎要求每个数字正好 3 位小数。但是,如果您打印出类似 70.920 的 double (示例输入之一),它将显示为 70.92

double d = 70.920;
System.out.println(d);
System.out.printf("%.3f", d);  // <-- try this
70.92
70.920

注意第二个输出如何与示例输出的格式一致,而第一个不一致。

关于java - 在java中排序 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976334/

相关文章:

c++ - 非 ascii 字符的字典顺序排序

java - Java Android 中的 Double/Float 输出问题

iphone - double 中的 objective-c stringvalue

Java Swing JComponent "size"

java - Java 构造函数内的声明

java - 使用 JSON 将 2 个参数传递给 struts2 操作

ruby - 如何为哈希创建自定义 "merge"方法?

java - 插入排序复杂度可以降低到 O(nlogn) 吗?

c++ - 精确返回 double

java - 在 NavigationView 中获取 NullPointerException