Debezium 和 Float 数据类型

Debezium and Float data type

我在 MySQL 中有一个 float 数据类型 我尝试了所有的十进制转换器,但每次都得到错误的值

源数据类型float(3,2)

插入的值:32.43

来自 Kafka 主题的值:9.99

知道为什么转换没有正常进行吗?

更新时间:2021-07-26

我发现这是来自 MySQL 方面的,因为 MySQL 本身以该格式存储该值。即使是 binlog 也仅将其存储为 9.99

Kafka 或 Debezium 没有产生这个问题,它来自 MySQL。我检查了table和binlog,值只有9.99。

Table DDL:

CREATE TABLE `table1` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `point` decimal(3,2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

insert into table2 values (29,'bbb',32.43);

select * from table1;
| 29 | bbb  |  9.99 |

但是有一个警告。

Out of range value for column 'point' at row 1

学分:

我在 MySQL 的 slack 社区中问了这个问题。 Graham Halsey 帮助我理解了这个问题。

float(3,2) means you can store 3 digits, 2 of which are after the decimal point