我从数据库中获取了一个号码,这个号码可能是float
或int
。
我需要将数字的小数精度设置为3
,这使得数字不超过(关于小数)5.020
或1518845.756
。
使用PHP
round($number, $precision)
我发现了一个问题:
它将数字四舍五入。我需要一个函数来只缩短小数,而不改变round( )
似乎不遵循的值。
答案 0 :(得分:17)
您可以使用number_format()
来实现此目标:
echo number_format((float) $number, $precision, '.', '');
这会将1518845.756789
转换为1518845.757
。
但是如果您只想将小数位数缩短为3, 不回合,那么您可以执行以下操作:
$number = intval($number * ($p = pow(10, $precision))) / $p;
一开始可能看起来令人生畏,但这个概念非常简单。你有一个数字,你将它乘以10 3 (它变为1518845756.789
),将其转换为整数,以便删除3位小数后的所有内容(变为1518845756
) ,然后将结果除以10 3 (变为1518845.756
)。
答案 1 :(得分:10)
它的声音像floor
,带小数。所以你可以试试像
floor($number*1000)/1000
答案 2 :(得分:2)
如果我理解正确,你不会想要进行舍入,你希望精度为3。
所以我的想法是使用number_format()
获得4的精度,然后删除最后一位数字:
$number = '1518845.756789';
$precision = 3;
echo substr(number_format($number, $precision+1, '.', ''), 0, -1);
将显示:
1518845.756
而不是:
1518845.757
答案 3 :(得分:1)
有关更多详细信息,请参见this answer。
let toolBarRect = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 44)
let toolBar = UIView(frame: toolBarRect)
toolBar.backgroundColor = .lightGray
let nextButton = UIButton()
nextButton.setTitleColor(.black, for: .normal)
nextButton.setTitle("Next", for: .normal)
nextButton.addTarget(self, action: #selector(self.onNextButtonTouch), for: .touchUpInside)
nextButton.translatesAutoresizingMaskIntoConstraints = false
toolBar.addSubview(nextButton)
NSLayoutConstraint.activate(
[
nextButton.heightAnchor.constraint(equalToConstant: Constants.keyboardToolBarHeight),
nextButton.trailingAnchor.constraint(equalTo: toolBar.trailingAnchor, constant: -16),
nextButton.centerYAnchor.constraint(equalTo: toolBar.centerYAnchor, constant: 0)
]
)
self.yourTextField.inputAccessoryView = toolBar
答案 4 :(得分:-1)
$num=5.1239;
$testnum=intval($num*1000)/1000;
echo $testnum; //return 5.123