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

Racket语言中如何对数值四舍五入并保留1位小数

Racket 指定位数小数四舍五入实现方法

Racket 内置的 round 函数仅返回与输入值最接近的整数,无法直接设置保留小数位数,可根据使用场景选择以下两种实现方式:

方式1:数值计算(返回数值类型结果)

核心逻辑为缩放取整:将待处理数值放大 10^n 倍(n 为需要保留的小数位数),对放大后的结果调用 round 取整,再缩小相同倍数,即可得到四舍五入后保留指定位数小数的数值。

  • 保留1位小数的直接实现代码:
(/ (round (* 8.67 10)) 10)
;; 执行返回结果:8.7
  • 可封装为通用复用函数,支持任意保留位数:
(define (round-to-decimal num precision)
  (let ([scale (expt 10 precision)])
    (/ (round (* num scale)) scale)))
  • 函数调用示例:
> (round-to-decimal 8.67 1)
8.7
> (round-to-decimal 9.43 1)
9.4
> (round-to-decimal 7.96 1)
8.0

方式2:格式化输出(返回字符串类型结果,适合展示场景)

如果需要将处理后的成绩直接放入星型标识中展示,推荐直接使用内置的 real->decimal-string 函数,传入数值和需要保留的小数位数即可,函数会自动完成四舍五入,同时自动补全小数位的0,避免整数成绩显示时缺失小数部分的问题:

> (real->decimal-string 8.67 1)
"8.7"
> (real->decimal-string 9 1)
"9.0"
> (real->decimal-string 6.24 1)
"6.2"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:36:27