我在寻找解决此问题的最佳方法时遇到了一些问题。我想显示 0-100 的百分比。我的输入(X)是以米为单位的距离。 X 越接近 0,我希望百分比越接近 100。
我的问题是,人们必须能够知道他们是否正在接近 0。无论范围有多远。因此,如果他们距离 10000 米并达到 9900 米,我需要增加百分比。但如果他们距离 50 米,达到 45 米,情况也是一样。
现在我正在做
100 - ((playerDistance / max) * 100)
其中 max 是某人可以达到的米的最大值。对于我的情况来说大约是300,000。如果他们旅行很远,这很有效。但一旦它们进入几千米范围内,它就会失去所有精度,因为在很长一段时间内精度都会保持在 99%。
最佳答案
您可以应用参数 0 值为 1 (100%) 并平滑减小的任何函数。
一对示例(Python 语法)
100.0 * math.exp( - dist / 1000.0)
100.0 * math.pow(1 + dist, -0.3)
请注意,您无法提供涵盖所有所需范围的整数百分比值,因此您必须在点后显示至少三位小数(例如 54.321)。
另请注意,指数方法为相等的 distance1/distance2
比率提供了相等的百分比增量
关于javascript - 数学逻辑,将可缩放数字转换为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60050765/