【发布时间】:2020-05-08 02:17:38
【问题描述】:
我正在构建这个 API,数据库将存储代表以下之一的值:
- 百分比
- 平均
- 率
老实说,我不知道如何用数字表示范围在 0 到 100% 之间的东西。应该是
- 0.00 - 1.00
- 0.00 - 100.00
- 我不知道的任何其他替代方法
对此有明确的选择吗?一种在数据库上表示从 0% 到 100% 的全局方式?更进一步,它的正确类型是什么,浮点数还是小数?
谢谢。
【问题讨论】:
-
数字可以以多种方式存储。使用 0-100 或使用 0-1 存储百分比本质上没有任何问题。重要的是你需要对数字做什么,你需要什么准确性等等。在给出一个好的答案之前,您必须解释更多的上下文。您是否需要存储可以用少量十进制数字精确表示的数字?如果你平均一些东西,你会得到像三分之一或七分之一这样的分数。你需要准确地存储这些吗?还是大约?大约多少?你会用它们做什么?
-
如果值是 0.00 到 100.00,步长为 0.01,即 10001 个不同的值。只需使用
int来表示 hundredths 或以 Permyriad 或‱为单位。 -
@chux-ReinstateMonica - 是的,“缩放整数”是可能的,但很笨拙。
-
@RickJames 也许吧。我没有发现缩放整数很困难。
标签: mysql sql types floating-point decimal