[英]My kg and lbs conversion is always off by significant amount
我正在尝试以公制单位存储所有度量,但是希望用户能够以公制或英制查看或提交。 我使用的是非常精确的转换,而且我绝对可以确定使用的数字是正确的。 尽管如此,每次我输入180磅,转换为kg或MySQL存储并将其转换回lbs时,结果都是180.77905484。 这是我的代码。
以kg形式进入数据库之前
$weight = $weight * 0.45359237;
从数据库中检索为kg后
$kg_conv = 2.20462262;
echo $progress->weight * $kg_conv;
我会知道它是否减少了百分之一磅,或者减少了几磅,但是为什么它只减少了0.77磅呢?
您正在(某处)舍入换算后的千克值。
180 * 0.45359237
是81.6466266
,很好。
81.6465266 * 2.20462262
是179.99999985
,这也很好。 这是由于浮点导致的精度损失的范围之内。 数字和数学都很好。
但是,您没有这些数字。 你不能。 您的值180.77905484
是精确输入82
的千克的结果。 82 * 2.20462262
是您得到的180.77905484
。
因此,在某个地方,无论是在写入数据库之前还是在从数据库读取之后,您都将四舍五入后的千克值转换为180 * 0.45359237
,从81.6466266
变为82
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.