Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的千克和磅的换算值总是大幅下降_Php_Mysql_Database - Fatal编程技术网

Php 我的千克和磅的换算值总是大幅下降

Php 我的千克和磅的换算值总是大幅下降,php,mysql,database,Php,Mysql,Database,我试图以公制单位存储所有度量值,但希望用户能够以公制或英制单位查看或提交。我使用的是非常精确的转换,我绝对相信我使用的是正确的数字。尽管如此,每次我输入180磅,转换成kg或MySQL存储,并将其转换回lbs时,我得到的结果是180.77905484。这是我的密码 在以kg的形式进入数据库之前 $weight = $weight * 0.45359237; $kg_conv = 2.20462262; echo $progress->weight * $kg_conv; 从数据库中检索

我试图以公制单位存储所有度量值,但希望用户能够以公制或英制单位查看或提交。我使用的是非常精确的转换,我绝对相信我使用的是正确的数字。尽管如此,每次我输入180磅,转换成kg或MySQL存储,并将其转换回lbs时,我得到的结果是180.77905484。这是我的密码

在以kg的形式进入数据库之前

$weight = $weight * 0.45359237;
$kg_conv = 2.20462262;
echo $progress->weight * $kg_conv;
从数据库中检索为kg后

$weight = $weight * 0.45359237;
$kg_conv = 2.20462262;
echo $progress->weight * $kg_conv;
我可以理解,如果减掉了百分之一磅,或者减掉了几磅,那为什么只减掉了0.77磅呢?

你(在某处)把换算后的千克值四舍五入了

180*0.45359237
81.6466266
,没关系

81.6465266*2.20462262
179.9999985
,这也可以。这属于由于浮点运算而导致精度损失的范围。数字和数学都很好

但是,您没有这些数字。你不能。您的值,
180.77905484
,是精确输入
82
的千克数的结果<代码>82*2.20462262是您得到的
180.77905484

因此,在某个地方,无论是在写入数据库之前还是从数据库读取之后,您都在对转换后的千克值进行四舍五入,即
180*0.45359237
,然后从
81.6466266
82

您正在(某个地方)对转换后的千克值进行四舍五入

180*0.45359237
81.6466266
,没关系

81.6465266*2.20462262
179.9999985
,这也可以。这属于由于浮点运算而导致精度损失的范围。数字和数学都很好

但是,您没有这些数字。你不能。您的值,
180.77905484
,是精确输入
82
的千克数的结果<代码>82*2.20462262是您得到的
180.77905484


所以,在某个地方,在写入数据库之前或从数据库读取之后,您正在将转换为千克的值取整为
180*0.45359237
,并从
81.6466266
变为
82

您使用哪种列存储转换后的值?您使用哪种列存储转换后的值?