如何像mysql那样存储大浮点数

gopyfrb3  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(469)

我有一个文件包含一些浮点数。它们是由python的process\u time()函数生成的。这是我要存储在字段中的值的一个示例,

0.0034867459908127785

我需要按原样储存号码。那我想问一下 MAX 列的名称。当我将值存储在类型为 FLOAT() 它四舍五入到: 0.00348675 . 当我查询max时,我得到: 0.0034867459908127785 这对我来说是不可接受的。我不想数字有任何变化。
我怎样才能按原样存放这些大浮标?然后查询max并得到存储的确切数字?我不想把任何事都绕过去。我需要完整的数字。

oxalkeyp

oxalkeyp1#


**First Approch:**

您可以将数据保存为十进制,将最大值保存为:

CREATE TABLE `save_processtime1` (
  `id` INT(11) NOT NULL,
  `point_decimal` DECIMAL(25,20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `save_processtime1` (`id`, `point_decimal`) VALUES('1','0.0034867459008127785');
INSERT INTO `save_processtime1` (`id`, `point_decimal`) VALUES('2','0.0034867459908127785');
INSERT INTO `save_processtime1` (`id`, `point_decimal`) VALUES('3','0.0034867459908127001');
INSERT INTO `save_processtime1` (`id`, `point_decimal`) VALUES('4','0.1000000021200021011');
INSERT INTO `save_processtime1` (`id`, `point_decimal`) VALUES('5','0.0032867459908127785');

mysql>SELECT MAX(point_decimal) FROM save_processtime;
+-----------------------+
| MAX(point_decimal)    |
+-----------------------+
| 0.1000000021200021011 |
+-----------------------+

其他方法:
您可以将此数据保存到字段为varchar的表中。只需获得场的最大值。
虚拟表结构:

CREATE TABLE `save_processtime` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `point_num` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

insert into `save_processtime` (`id`, `point_num`) values('1','0.0034867459008127785');
insert into `save_processtime` (`id`, `point_num`) values('2','0.0034867459908127785');
insert into `save_processtime` (`id`, `point_num`) values('3','0.0034867459908127001');
insert into `save_processtime` (`id`, `point_num`) values('4','0.1000000021200021011');
insert into `save_processtime` (`id`, `point_num`) values('5','0.0032867459908127785');

最大时间输出:

mysql> SELECT MAX(point_num) FROM save_processtime;
+-----------------------+
| MAX(point_num)        |
+-----------------------+
| 0.1000000021200021011 |
+-----------------------+

希望这就是你想要的!第一种方法比第二种好:)

相关问题