我的千克和磅的转换总是大量减少

时间:2014-12-31 06:43:29

标签: php mysql database

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

以千克进入数据库之前

$weight = $weight * 0.45359237;

从数据库中检索为kg

$kg_conv = 2.20462262;
echo $progress->weight * $kg_conv;

我会理解它是以百分之一磅还是几磅重,但为什么只能减掉0.77磅?

1 个答案:

答案 0 :(得分:5)

您(某处)将您的转换千克值四舍五入。

180 * 0.4535923781.6466266,没关系。

81.6465266 * 2.20462262179.99999985,这也没关系。这是由于浮点引起的精度损失范围。数字和数学都很好。

但是,你没有这些数字。你不能。您的值180.77905484是完全82千克输入的结果。 82 * 2.20462262是您获得的180.77905484

所以,在某处,无论是在写入数据库之前还是之后,您都要将转换后的公斤值180 * 0.45359237四舍五入并从81.6466266转为82。< / p>