Lobsters|📄 原文链接|2026-07-23 收录

PHP 和 Lua 中 log 函数竟然是非单调的

来源:purplesyringa.moe — 2026-07-22

📋 概述

文章揭示了一个令人惊讶的浮点运算陷阱:在 PHP 和 Lua 中,即使 a > b > 1,log(x, a) 也可能小于 log(x, b),违反数学对数函数的单调性。这不是普通的浮点舍入误差,而是因为这些语言在实现双参数 log 时没有直接使用 libm 提供的专用函数,而是通过 ln(x)/ln(a) 间接计算,导致分子和分母都舍入到相同值后结果却不同。

🔑 核心要点

💡 金句

这甚至不是因为 ln(a) 和 ln(b) 不同——它们舍入到了同一个浮点数!分子没变,分母没变,但结果变了。
← 返回 Lobsters 首页