javascript - 数学逻辑,将可缩放的数字转换为百分比
问题描述
我在找出解决此问题的最佳方法时遇到了一些问题。我想显示 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 - 为什么在触摸设备中触发两次 am-charts 的点击事件?
- java - Java中解引用的定义
- flutter - 颤振模态表
- r - 我可以使用 R ggsurvplot 在我的 Kaplan Meier 图中更改 surv.median.line 的颜色吗?
- c - 有 4 个孩子的 fork 进程?
- java - 如何测试 Spring Batch 应用程序的整个流程?
- sql - 如何构造 SQL 查询以查找随时间变化的值
- perl - What does the if( $n ) do in the code below?
- c# - 如何将文件保存在 localStorage 中,然后在 mvc 中的服务器上发送
- sql-server - 是否可以使用 AWS DMS 将 SQL 服务器数据库迁移到其他云 mysql ?