首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL十进制9.99999999

MySQL十进制9.99999999
EN

Stack Overflow用户
提问于 2016-07-14 18:36:17
回答 2查看 331关注 0票数 0

我使用脚本从google获得货币,然后将数据写入数据库。

然而,当我这样做时,我得到的是9.99999999,而不是我发送的东西。我的InnoDB设置为十进制(9,8)。

代码语言:javascript
复制
 $conn->set_charset('utf8');            

 $add_currency_query = "INSERT INTO `currency_table`
 (`currency_rate`, `time_fetched`, `service`)
 VALUES ('$converted_amount', UTC_TIMESTAMP(), 'google-finance')";  

和我的PHP

代码语言:javascript
复制
$get = explode("<span class=bld>",$get);
$get = explode("</span>",$get[1]);
$converted_amount = preg_replace('/[^0-9\.]/', null, $get[0]);

关于如何解决这个问题/我做错了什么,有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-14 18:39:30

小数(9,8)表示总共有9个符号,其中8个是在圆点后面。这意味着您只能存储最多9.99999999的数字,如果您将高于它的任何内容保存下来,它可能会保存为9.99999999。

建议:将您的字段更改为十进制(20,8)

票数 2
EN

Stack Overflow用户

发布于 2016-07-14 18:38:36

DECIMAL (9,8)指的是总中的9位数字,小数点之后的8位数字。

那么十进制的最大数是多少呢?是9.99999999。当你寄出的号码比你能储存的要大的时候,你就会得到这个号码。当值溢出时,MySQL只存储尽可能高的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38381769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档