gpt4 book ai didi

php - 从数据库中出来的 float 错误

转载 作者:行者123 更新时间:2023-11-29 13:23:08 24 4
gpt4 key购买 nike

我将 float 指定为 0.1,然后使用 php echo 将其渲染到浏览器,它给出的值是 1.77175e-07。

什么可能导致这种非常奇怪的现象发生?

//Set reward
$reward = 0.1;

$question_result = mysql_query("SELECT question, answer, timelimit FROM trivia_questions ORDER BY RAND() LIMIT 1");
$question_array = mysql_fetch_array($question_result);
$question = $question_array['question'];
$answer = $question_array['answer'];
$timelimit = $question_array['timelimit'];

//Send response
echo "question,".$question.",".$answer.",".$reward.",".$timelimit.",".$question." (".$reward."L$ Reward)";

最佳答案

这确实应该是一条评论 - 但它太长了。

我认为其他评论者试图解释大多数计算机不存储十进制 float - 它们会更改为二进制并在需要时再次返回 - 这可能会导致一些舍入错误(例如 0.1 可能会变成 0.1000013342。 ..)但 0.1 和 0.000000177175 之间存在巨大差异,这不是转换错误。

问题的标题暗示您认为从数据库检索的数字不正确 - 但您显示的代码不会将 0.1 写入数据库 - 您也没有给出任何指示如何检索它,也没有给出类型存储它的数据库字段的名称。

如果 PHP 和/或 mysql 无法在没有任何可靠性的情况下处理 float ,我想现在有人会注意到 - 你的代码中的某个地方有一个错误。

检查数据库上的数据类型。检查您是否插入了浮点值(未加引号)。使用不同的客户端从数据库中检索值。

查看问题中的代码非常有帮助 - 但很容易忽略重要的内容并包含许多不相关的内容。下次尝试创建一个最小的脚本来复制问题(例如,在此处的情况下 - 将值插入表中并检索该值的脚本)。您可能希望通过 Google 查找 E.S.Raymond 的《如何以智能方式提问》。

关于php - 从数据库中出来的 float 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com