首页 > 解决方案 > 数学逻辑,将可缩放的数字转换为百分比

问题描述

我在找出解决此问题的最佳方法时遇到了一些问题。我想显示 0-100 的百分比。我的输入(X)是以米为单位的距离。X 越接近 0,我希望百分比越接近 100。

我的问题是,这个人必须能够知道他们是否越来越接近 0。无论范围有多远。因此,如果它们在 10000 米之外并达到 9900 米,我需要增加百分比。但如果它们在 50 米外并达到 45 米,情况也是如此。

现在我正在做

100 - ((playerDistance / max) * 100)

其中 max 是某人可以达到的米的最大值。就我而言,这大约是 300,000。如果他们旅行很远,这很有效。但是一旦他们进入几千米内,它就会失去所有的精度,因为它会在很长一段时间内达到 99%。

标签: javascriptalgorithmmathlinear-algebraequation

解决方案


您可以为参数 0 应用任何值为 1 (100%) 并平滑减小的函数。

一对例子(Python语法)

100.0 * math.exp( - dist / 1000.0)
100.0 * math.pow(1 + dist, -0.3)

请注意,您不能提供涵盖所有需要范围的整数百分比值,因此您必须在点后显示至少三位小数(如 54.321)。

另外请注意,指数方法为相等的distance1/distance2比率提供相等的百分比增量


推荐阅读