首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储统计数据,我需要十进制,浮点数还是双数?

问存储统计数据,我需要十进制,浮点数还是双数?
EN

Stack Overflow用户
提问于 2013-10-26 01:53:18
回答 7查看 95.5K关注 0票数 92

我创造的乐趣,但我仍然想认真对待它,一个网站,主办各种测试。通过这些测试,我希望收集统计数据。

一些数据将包括测试完成时间的百分比。我可以轻松地计算测试的百分比,但是我希望返回真实的数据,因为我在完成测试时存储各种不同的值。

大多数值都是PHP浮动的,所以我的问题是,如果我想要真正的统计数据,我应该将它们以浮动、双或十进制的形式存储在MYSQL中。

我想利用MYSQL的函数,如AVG()和LOG10()以及TRUNCATE()。对于MYSQL来说,根据我插入的值返回真正的数据,我应该使用什么作为数据库列的选择。

我之所以这样问,是因为有些数字可能是浮动的,也可能不是浮动的,例如,10、10.89、99.09或简单地说是0。但我希望返回真实有效的统计数据。

我能依赖浮点数学吗?

编辑

我知道这是一个一般性的问题,我很抱歉,但是对于像我这样的非数学家,我也不是MYSQL专家,我想听听这个领域的专家的意见。

我已经做了我的研究,但我仍然觉得我对这件事有一个模糊的判断。再次,我道歉,如果我的问题是偏离主题或不适合本网站。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-10-26 02:04:36

这个link很好地解释了你要找的东西。下面是这么说的:

这三种类型都可以通过以下参数(size,d)指定。其中大小是字符串的总大小,d表示精度。例如,要存储像1234.567这样的数字,您将把Datatype设置为DOUBLE(7,3),其中7是数字的总数,3是小数点后面的数字数。

浮动和双,都代表浮点数。浮点数表示单精度,而双精度表示双精度数字.从0到23的精度将导致4字节的单精度浮点数列.从24到53的精度会产生8字节的双精度双列.浮点数精确到大约小数点7位,双倍到14位。

十进制的声明和功能类似于双数。但是浮点值和十进制(数字)值有一个很大的区别。我们使用十进制数据类型来存储精确的数值,在这里我们不想要精确,而需要精确和准确的值。一个十进制类型最多可以存储65位数字,小数点之后有30位数字。

因此,对于最精确和最精确的值,十进制将是最好的选择。

票数 106
EN

Stack Overflow用户

发布于 2014-12-09 21:29:02

除非存储十进制数据(即货币),否则应使用标准浮点类型(浮点数或双浮点数)。十进制是一种不动点类型,所以在计算和之类的东西时会溢出,对于LOG10来说这是非常不准确的。

二进制浮点类型没有什么“不那么精确”的,事实上,它们将更准确(更快)满足您的需要。双倍。

票数 17
EN

Stack Overflow用户

发布于 2017-10-14 09:31:49

十进制:不动点类型(精确值).当你像钱一样关心精确的精确性时,就用它。

例子:salary DECIMAL(8,2),8是数字总数,2是小数位数。salary将在-999999.99到999999.99的范围内

浮点数,双:浮点类型(近似值).浮点数使用4个字节来表示值,Double使用8个字节来表示值。

示例:percentage FLOAT(5,2),与十进制类型相同,5是总数字,2是小数位。percentage将在-999.99到999.99之间存储值。

请注意,它们是近似值,在本例中:

  • 像1 / 3.0 = 0.3333333...这样的值将被存储为0.33 (小数点2位)
  • 像33.009这样的值将被存储为33.01 (四舍五入到小数点2位)。
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19601975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档