我创造的乐趣,但我仍然想认真对待它,一个网站,主办各种测试。通过这些测试,我希望收集统计数据。
一些数据将包括测试完成时间的百分比。我可以轻松地计算测试的百分比,但是我希望返回真实的数据,因为我在完成测试时存储各种不同的值。
大多数值都是PHP浮动的,所以我的问题是,如果我想要真正的统计数据,我应该将它们以浮动、双或十进制的形式存储在MYSQL中。
我想利用MYSQL的函数,如AVG()和LOG10()以及TRUNCATE()。对于MYSQL来说,根据我插入的值返回真正的数据,我应该使用什么作为数据库列的选择。
我之所以这样问,是因为有些数字可能是浮动的,也可能不是浮动的,例如,10、10.89、99.09或简单地说是0。但我希望返回真实有效的统计数据。
我能依赖浮点数学吗?
编辑
我知道这是一个一般性的问题,我很抱歉,但是对于像我这样的非数学家,我也不是MYSQL专家,我想听听这个领域的专家的意见。
我已经做了我的研究,但我仍然觉得我对这件事有一个模糊的判断。再次,我道歉,如果我的问题是偏离主题或不适合本网站。
发布于 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位数字。
因此,对于最精确和最精确的值,十进制将是最好的选择。
发布于 2014-12-09 21:29:02
除非存储十进制数据(即货币),否则应使用标准浮点类型(浮点数或双浮点数)。十进制是一种不动点类型,所以在计算和之类的东西时会溢出,对于LOG10来说这是非常不准确的。
二进制浮点类型没有什么“不那么精确”的,事实上,它们将更准确(更快)满足您的需要。双倍。
发布于 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位)。https://stackoverflow.com/questions/19601975
复制相似问题