草庐IT

decimal-point

全部标签

mysql - 将 MySQL POINT 数据类型转换为 PostgreSQL

我正在将一个包含几何数据的数据库从MySQL迁移到PostgreSQL。我遇到了一个障碍,因为POINT数据类型在两个数据库之间不兼容。在MySQL中,POINT值是单个十六进制字符串,如0xE21D4B40。但是,我无法将它们插入PostgreSQL,因为PostgreSQL'sPOINTdatatype需要(x,y)形式的坐标。处理这种转化的最佳方式是什么? 最佳答案 @tadman的评论最终成为我的解决方案:在MySQL端将十六进制字符串解包为一对值。在我的例子中,十六进制字符串是city表中名为location的列,因此我使

Mysql DECIMAL存储

您好,我正在使用DECIMAL数据类型创建一个非常大的表。从那里开始和增长将有5000万行,所以我很关心存储。我需要DECIMAL,因为我需要精确的表示,而且文档很清楚,如果你想要精确的表示,你必须使用DECIMAL。mysql手册对DECIMAL存储要求非常清楚,说明:从MySQL5.0.3开始,DECIMAL列的值使用二进制格式表示,该格式将九个十进制(基数10)数字打包成四个字节。每个值的整数和小数部分的存储分别确定。九个数字的每个倍数需要四个字节,“剩余”数字需要四个字节的一部分。下表给出了多余数字所需的存储空间。剩余位数字节数0011213242http://dev.mysq

MYSQL CAST AS DECIMAL for VARCHAR 字段

我的客户给了我一个电子商务项目来修复一些错误。较早的愚蠢开发人员在产品表中给价格字段VARCHAR数据类型而不是非常明显的INTEGER数据类型,因此下一组开发人员为了根据价格范围进行搜索使用CAST(价格为十进制)。现在,我是第三个研究这个的人,我发现这个CASTASDECIMAL的东西并不奇怪只适用于0-500的价格范围,但适用于所有其他价格范围,如500-1000、1000-2000等等.查询是这样的:目前的查询是:SELECT*FROMtbl_productwherestatus=1andsubcat_id='128'andprice>'0'andprice这是以某种方式搜索价

php - PHP 中的 MySQL DECIMAL 处理

正如通常讨论的那样,(例如此处Storing0.00001inMySQL)DECIMAL数据类型应该用于需要精度/正确性的字段,例如帐户余额。但是我想知道,PHP如何处理这些值,如果它们在内部作为float处理,从数据库读取这些值、进行一些计算并再次将它们写回时是否仍然存在问题。如果是这样,我们如何才能强制PHP保持精确度? 最佳答案 该变量最初在PHP中可能是一个字符串(当从MySQL结果对象读取时)。通常,不能依赖PHP的float据类型来保持所需的精确十进制值。您应该使用任意精度的数学库,例如GMP.(当您获取结果对象的一行时

mysql decimal 和 tinyint 乘法精度

在mysql5.1中,我有一个包含两列的表createtablet1{pricedecimal(6,2),quantitytinyint(4),...}在我正在做的选择查询中selectsum(price*quantity)fromt1groupby...这个计算是精确计算吗(使用定点运算)?还是我需要担心舍入/精度损失等问题? 最佳答案 我相信小数乘以整数没有精确的损失。参见PrecisionMathExamples.我还做了一个小实验来了解float和小数之间的区别:SELECT.1E0*.1E0,.1*.1,(.1E0*.1E

mysql - 在 MySQL 中使用 decimal 而不是 double 有什么常见的问题吗?

我的一个friend说,他们在使用decimal列存储货币格式时遇到了一些奇怪的事情,例如保存1000.00会导致它被存储为999.99。不过我刚刚测试过,1000.00在decimal(19,4)/MySQL5上存储为1000.0000。任何人都可以深入了解他们可能遇到问题的原因吗?可能是MySQL的一个老bug,应用端计算不当才存入数据库?这是一个ROI字段,我正在存储可能高达数千的货币值,仅供引用。 最佳答案 您应该使用DECIMAL数据类型来表示精确的数字,而不是DOUBLE。引用自MySQLDocumentationonN

mysql - MySQL 的 Decimal 函数的第一个参数是做什么的?

使用MySQL5.0.27这个查询:SELECTCAST('543.21'ASDECIMAL(100,2))返回543.21这个也是:SELECTCAST('543.21'ASDECIMAL(2,2))事实上,我很难弄清楚参数有什么影响。我正在使用它来聚合varchar列中的数值(出于遗留原因!!)并四舍五入到小数点后两位。我应该只选择一个高数字吗? 最佳答案 它描述了一个字段(或变量)能够存储的总位数。DECIMAL(100,2)-总共100位数字,小数点分隔符前98位,小数点分隔符后2位DECIMAL(2,2)总位数,小数点前0

DECIMAL NUMERIC 数据类型中的 MySQL 精度问题

在编写用于科学应用的函数时,我遇到了问题。我将其追溯到MySQL缺乏精确性。这是官方文档中的页面,该页面声称DECIMAL的最大位数为65-http://dev.mysql.com/doc/refman/5.6/en/fixed-point-types.html.它还描述了如果值超过指定的精度,将如何对其进行舍入。这是用于测试它的可重现代码(一个mysql存储函数)-DELIMITER$$DROPFUNCTIONIFEXISTStest$$CREATEFUNCTIONtest(xxDECIMAL(30,25))RETURNSDECIMAL(30,25)DETERMINISTICBEGI

mysql - DECIMAL mysql和存储空间?

根据我对mysql文档中DECIMAL手册的理解,它指出九位数的每个倍数需要4个字节,剩下的数字需要以下字节;numberofdigitsleftover|bytes0|01|12|13|24|25|36|37|48|4那么decimal(12,6)将等于6个字节的总存储空间?我知道小数部分将始终等于6位数字,因为零被填充,但对于DECIMAL(12,6)列,整数部分并非如此,存储是否按行或在列定义处?例子DECIMAL(12,6)1:178.999999//3digitsforintegerpartsototalwouldbe5bytes?2:0.880000//1digitsfor

php - PHP 中的未定义索引和 MYSQL 中的数据类型 POINT

我刚开始在MYSQL中使用POINT数据类型,所以我想在PHP中测试一个表的输出,但我收到错误“undefinedindex”。如何修复此错误并在表格中显示点数?错误信息注意:未定义索引:C:\xampp\htdocs\view.php中第23行的my_point(分数没有显示在表格中。我该如何解决?)MYSQL表/*表highcharts_php的表结构*/CREATETABLE`highcharts_php`(`id`int(11)NOTNULLAUTO_INCREMENT,`run_name`varchar(150)DEFAULTNULL,`my_point`POINTDEFAU