如何不四舍五入仅提取数字的第一位小数?
不四舍五入保留指定位小数的实现方案
核心逻辑是通过量级调整,把需要保留的小数位移到整数位做截断,再还原回原量级即可,完全避免四舍五入逻辑。
通用数学方法
要保留1位小数时,遵循以下公式即可:floor(原数 * 10) / 10
验证示例:
- 数值
1.88:1.88 * 10 = 18.8,floor(18.8)得到整数18,18 / 10 =1.8,符合需求 - 数值
2.488:2.488 * 10 = 24.88,floor(24.88)得到整数24,24 / 10 =2.4,符合需求
如果需要处理负数,可根据截断规则调整取整函数:要保留和正数一致的向零截断效果时,把floor替换为ceil即可,比如ceil(-1.88 * 10) / 10 会得到-1.8。
常见场景实现示例
- 数值计算场景(各语言通用逻辑)
- Python 实现:
import math def truncate_one_decimal(num): return math.floor(num * 10) / 10 - JavaScript 实现:
function truncateOneDecimal(num) { return Math.floor(num * 10) / 10 }
- Python 实现:
- 纯展示场景(无需后续数值计算)
可以直接转字符串截断,完全规避浮点数精度问题:# Python 示例 num_str = str(2.488) res = num_str[:num_str.index('.') + 2] # 得到结果为字符串 "2.4"
内容的提问来源于stack exchange,提问作者Louis Chopard
相关产品推荐
相关产品推荐

