Php 我的千克和磅的换算值总是大幅下降
我试图以公制单位存储所有度量值,但希望用户能够以公制或英制单位查看或提交。我使用的是非常精确的转换,我绝对相信我使用的是正确的数字。尽管如此,每次我输入180磅,转换成kg或MySQL存储,并将其转换回lbs时,我得到的结果是180.77905484。这是我的密码 在以kg的形式进入数据库之前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; 从数据库中检索
$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
您使用哪种列存储转换后的值?您使用哪种列存储转换后的值?