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

TCL中浮点数列表排序结果不符合预期,求正确实现方法

TCL浮点数排序异常解决方法

默认情况下,lsort命令是按字符串字典序排序的,这就是你得到错误结果的原因——它会优先比较字符串的首字符ASCII值,比如"10..."的首字符'1'小于"3..."的首字符'3',所以排在前面,完全不考虑数值实际大小。

要实现浮点数的升序数值排序,只需给lsort加上-real选项,它会自动将列表元素当作实数进行比较:

puts [lsort -real [list 22.678 11.456 7.6 3.521 8.9 4.987 9.245 10.7765]]

执行后就能得到你需要的升序结果:

3.521 4.987 7.6 8.9 9.245 10.7765 11.456 22.678

如果需要降序排序,可搭配-decreasing选项:

# 浮点数降序排序示例
puts [lsort -real -decreasing [list 22.678 11.456 7.6 3.521 8.9 4.987 9.245 10.7765]]

内容的提问来源于stack exchange,提问作者Vinh Nguyễn Phú

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:18:11