You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Racket中csv-writing包输出的数值精度?

解决csv-writing中display-table的数值精度问题

你写的代码问题在于#:number-cell->string需要的是一个接收数值、返回对应字符串的函数,而你直接调用~r #:precision 8时没有传入要格式化的单元格数值,自然无法生效。

正确的做法是用lambda把单元格数值作为参数传给~r,这样每次处理数值单元格时,都会用指定精度格式化:

(display-table each_rank_table vars_out_port
               #:printing-params
               (make-csv-printing-params
                #:number-cell->string
                (lambda (num) (~r num #:precision 8))))

这里的lambda (num)定义了一个单参数函数,每次display-table处理数值单元格时,会把单元格的数值传给num,再通过~r num #:precision 8格式化为保留8位精度的字符串。

内容的提问来源于stack exchange,提问作者shakeshuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:50:54