PHP MySql打印十进制数

时间:2014-08-05 03:55:00

标签: php mysql database decimal

这是我的代码:

数据库设置

<?php
$user="k*********";
$password="*********";
$database="**********";
mysql_connect("localhost",$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "CREATE TABLE rn (
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
dait CHAR(10),
rnfl INT ,
)";
mysql_query($query);
mysql_close();
?>

数据库更新

<?php
// Connect to MySQL
mysql_connect("localhost", "*********", "**************") or die(mysql_error());
mysql_select_db("********") or die(mysql_error());
$dait="31/7/2014";
$rnfl=12.9;
// Update  
$result = mysql_query("UPDATE rn SET dait='$dait', rnfl='$rnfl' WHERE id=1") 
or die(mysql_error());  
$result = mysql_query("SELECT * FROM rn WHERE id=1") 
or die(mysql_error());  
// get the first (and hopefully only) entry from the result
$row = mysql_fetch_array( $result );
echo $row['dait']." - "; 
printf('(%5.2d mm)', $row['rnfl']); 
?>

这是我在运行更新后得到的:

31/7/2014 - ( 13 mm)

我在寻找的是: -

31/7/2014 - (12.9 mm)

2 个答案:

答案 0 :(得分:2)

好吧,您正试图在12.9类型列中存储浮点数(INT - 整数。 Ints不支持小数位。所以基本上你的问题归结为&#34;我在商店买了香蕉。为什么它不是苹果?&#34;

如果您想再次rnfl,请将float的类型更改为decimal(10,2)或类似.9

答案 1 :(得分:1)

您将rnfl字段的类型设为int - 插入数据时将对数据进行舍入。

只需将类型更改为float,或者,如果您正在处理资金,decimal(10,2)