sme*_*ung 5 mysql nan infinity ieee-754
我已经看过很多关于这个问题的问题,但我还没有找到解决方案。希望这不是一个重复的问题。
如果我执行以下任一操作:
INSERT INTO `Numbers`(`Number`) VALUES ('NaN')
INSERT INTO `Numbers`(`Number`) VALUES ('Inf')
INSERT INTO `Numbers`(`Number`) VALUES ('+Inf')
Run Code Online (Sandbox Code Playgroud)
我在表中插入了 0.0。有时我会得到:
Error Code: 1265. Data truncated for column 'Number'
Run Code Online (Sandbox Code Playgroud)
我也尝试过不同的大小写和拼写,都具有相同的效果。
我什至尝试过:
INSERT INTO `Numbers`(`Number`) VALUES ('1111111111111000000000000000000000000000000000000000000000000000')
Run Code Online (Sandbox Code Playgroud)
如何将 NaN 浮点数插入 MySql 表中?
如果确实不可能,那么原因是什么?(也许我使用的MySql版本不正确?)
我实际使用的表我不想在这些列中允许 NULL 值。所以我不喜欢在 ORM 层的某个地方用 NULL 替换 NaN 的想法
要全面了解 MySQL 如何操作数字,您可以阅读以下章节:
上一篇文章提到了这一点:
服务器包括一个转换库,它为改进字符串或值与近似值 ( / ) 数字
dtoa
之间的转换提供了基础DECIMAL
FLOAT
DOUBLE
[...]
dtoa 库提供具有以下属性的转换。
D
表示具有 或 字符串表示形式的值DECIMAL
,并F
表示本机二进制 (IEEE) 格式的浮点数。[...]
F
除非-inf
、+inf
或 ,否则转换是无损的NaN
。不支持后面的值,因为 SQL 标准将它们定义为FLOAT
或 的无效值DOUBLE
。
简而言之:
归档时间: |
|
查看次数: |
3512 次 |
最近记录: |