从数据库中请求并回显一个浮点数[重复]
Posted
技术标签:
【中文标题】从数据库中请求并回显一个浮点数[重复]【英文标题】:request and echo a float number from database [duplicate] 【发布时间】:2014-08-20 13:19:49 【问题描述】:这是在 mysql 数据库中显示浮点数的正确方法吗?
if ($a == "balance")
$querys= "SELECT balance FROM users WHERE Username='$user'";
$results= mysql_query($querys);
$rows = mysql_fetch_row($results);
$bfloat = (float)$rows['balance'];
echo $bfloat;
在 MySQL 数据库中,列名 balanace
是 float
,例如当前用户的值是 1.73
。所以它的答案是 1.73
【问题讨论】:
不要使用浮点数来处理货币值! floating-point-gui.de 好吧,mysql
扩展名已被弃用,您应该对此采取一些措施。除此之外,您的问题到底是什么? This question 或 this one 可能与此处相关。
@SverriM.Olsen 我尝试检索数据库中类型为float
的存储量,例如浮点数为1.73
【参考方案1】:
坏消息。答案应该是大约 1.73。为此,在类型化语言中使用了单独的十进制类型(java BigDecimal)。请参阅Decimal type in php 在 PHP 中的相同内容。
浮点数近似于我们的十进制表示,它需要二进制系统中的无限位数(以 2 为底)。就像以 10 为底的 2/7,而以 7 为底的 0.2。
另外最好让自己习惯使用准备好的语句http://xkcd.com/327/
【讨论】:
“输入语言”...?!与 PHP 相比,PHP 是无类型的......?! @deceze 好吧,PHP 是弱类型的;一种类型通常可以用作另一种类型。他的意思可能是“强类型语言”。 @Sverri “弱”类型实际上并不是一回事。 What to know before debating type systems 啊,我有编程语言背景,所以我打字的措辞很糟糕。不久前,由于类型,我们的 Pretty Horrible 编程语言甚至获得了更好的性能。 我的观点:在 PHP 中,类型主要是事后才出现的,cast。该语言当然没有给予定点数所需的关注:教程、最佳实践、专业规范。 (好吧,java 的 BigDecimal 也很丑。) @deceze 好吧,你知道我在说什么。这使它成为“一件事”。以上是关于从数据库中请求并回显一个浮点数[重复]的主要内容,如果未能解决你的问题,请参考以下文章