CSDN-Ada助手 2023-05-23 15:44 采纳率: 1.5%
浏览 6

在Galaxybase中,为什么通过java执行算法查询之后返回给客户端的结果,解析写入到文件中会出现属性值为科学计数法的情况?

该问题来自社区帖: https://bbs.csdn.net/topics/615484669.为符合问答规范, 该问题经过ChatGPT优化

以下是代码:

public class Test {
    public static void main(String[] args) throws IOException {
        GalaxyBaseClient client = new GalaxyBaseClient("localhost", 8180);

        String query = "g.V().hasLabel('person').has('age', gt(20)).values('name', 'age');";
        GremlinResultSet result = client.submit(query);

        FileWriter fw = null;
        try {
            fw = new FileWriter("test.csv");

            String[] columnNames = {"name", "age"};
            for (int i = 0; i < columnNames.length; i++) {
                fw.write(columnNames[i]);
                if (i < columnNames.length - 1) {
                    fw.write(",");
                }
            }
            fw.write("\n");

            while (result.hasNext()) {
                Object[] values = result.next();
                for (int i = 0; i < values.length; i++) {
                    Object value = values[i];
                    fw.write(value.toString());
                    if (i < values.length - 1) {
                        fw.write(",");
                    }
                }
                fw.write("\n");
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fw != null) {
                fw.close();
            }
            result.close();
            client.close();
        }
    }
}
  • 写回答

2条回答 默认 最新

  • 码上团建 2023-05-23 16:02
    关注

    你应该是这行代码的问题:

    img


    在 Java 中,如果一个数的位数过大,或者小数位数过多,那么它可能会被自动转换为科学计数法的形式。这是因为科学计数法可以更简洁地表示这些数,而且可以避免一些精度问题。

    在你的代码中,出现属性值为科学计数法的情况,可能是因为你使用了 toString() 方法将查询结果的值转换为字符串,并写入到文件中。在这个过程中,Java 可能会自动将一些数值转换为科学计数法的形式。

    为了避免这个问题,你可以使用 String.format() 方法来将数值转换为固定的格式。例如,你可以使用以下代码将数值转换为不带科学计数法的形式:

    String valueStr = String.format("%.0f", value);
    fw.write(valueStr);
    
    

    这里的 %.0f 表示将数值格式化为不带小数位的浮点数形式。你可以根据需要调整这个格式字符串的内容,以满足你的实际需求。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月23日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵