将PHP字符串舍入到2位小数的正确方法是什么?
$number = "520"; // It's a string from a database
$formatted_number = round_to_2dp($number);
echo $formatted_number;
Run Code Online (Sandbox Code Playgroud)
输出应该是520.00;
round_to_2dp()功能定义应该如何?
假设我的值为15.7784514,我希望将其显示为15.77而不进行舍入.
var num = parseFloat(15.7784514);
document.write(num.toFixed(1)+"<br />");
document.write(num.toFixed(2)+"<br />");
document.write(num.toFixed(3)+"<br />");
document.write(num.toFixed(10));
Run Code Online (Sandbox Code Playgroud)
结果是 -
15.8
15.78
15.778
15.7784514000
Run Code Online (Sandbox Code Playgroud)
我如何显示15.77?
我有像这样的PHP变量的价值
$var='2.500000550';
echo $var
Run Code Online (Sandbox Code Playgroud)
我想要的是删除2位数后的所有小数点.
就像现在的变量值一样
$var='2.50';
echo $var
Run Code Online (Sandbox Code Playgroud)
请记住,这个值来自mysql数据库
但是当我使用round php function我得到了圆但我不需要圆,我只需要删除2十进制简单后的所有数字.
我累了,flot()很多其他选择都没有成功.
谢谢
我有一个非常奇怪的问题.如果我减去2个浮点数,其中一个是数学运算的结果,我得到一个错误的值.
例:
var_dump($remaining);
var_dump($this->hours_sub['personal']);
echo $remaining-$this->hours_sub['personal'];
Run Code Online (Sandbox Code Playgroud)
这是它的输出:
float 5.4
float 1.4
5.3290705182008E-15
Run Code Online (Sandbox Code Playgroud)
5.4-1.4应为4 如果我添加两个值,结果是正确的.
我的错误在哪里?它不能成为一个四舍五入的问题.
我有一个价格"0,10"或"00000,10"
现在,当我尝试
number_format($price, 2, ',', '')
Run Code Online (Sandbox Code Playgroud)
我得到0,00.我怎样才能解决这个问题?我想要0,10美元.我不想舍入.
或者当我有5,678时,我得到5,68.但我想要5,67.
我从数据库中得到一个数字,这个数字可能是float或者int.
我需要设置数字的小数精度3,这使得数字不长于(关于小数)5.020或1518845.756.
使用PHP
round($number, $precision)
Run Code Online (Sandbox Code Playgroud)
我看到一个问题:
它使数字四舍五入.我需要一个函数来只缩短小数,而不改变它们round( )似乎不遵循的值.
当我使用(int)和(double)一些时,它无法正常工作.
看看PHP代码示例:
我需要离开2个小数并删除其他...
我知道number_format(); 功能但我不能使用它.因为它是舍入数
number_format(24.299,2);
输出:24.30
我需要:24.29
<?php
$str="158.2";
echo (double)$str; // Output: 158.2
echo (double)$str*100; // Output: 15820
echo (int)((double)$str*100); // Output: 15819 <-WHY? It Must To Be 15820, Why 15819?
echo ((int)((double)$str*100)/100); // Output: 158.19
?>
Run Code Online (Sandbox Code Playgroud)
我需要在数字中留下两位小数,并在不进行舍入的情况下剪切其他小数.