这个问题在这里已有答案:
我的功能如下:
static function applyPrecision($vals) {
$originalNumber = $vals['reading'];
if (is_numeric($originalNumber)) {
$precision = ($vals['precision'] != '' || $vals['precision'] != 0) ? $vals['precision'] : 4;
$factor = pow(10, $precision);
$multipliedNumber = $originalNumber * $factor;
//$integerMultipliedNumber = floor($multipliedNumber);
$var = explode(".", $multipliedNumber);
$integerMultipliedNumber = $var[0];
return $result = (float) ($integerMultipliedNumber / $factor);
} else {
return $originalNumber;
}
}
使用这个,我们可以对数字应用精度而不用舍入值,例如: - 45.12345678精度给定为3,则输出为45.123
但如果这样的数字,:45.1000000,精度为3,那么输出仅为45.1,那个零被跳过,有什么方法可以避免这种情况吗?