Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript/php四舍五入_Javascript_Php_Rounding - Fatal编程技术网

javascript/php四舍五入

javascript/php四舍五入,javascript,php,rounding,Javascript,Php,Rounding,我的产品价格为1.83,税率为9%->0.1647。总价应该是2.00美元。 我希望这个值在四舍五入时有2位小数,为0.17。我试过了 (ceil(($item['price'] * $tax['percent'] / 100)*100)/100) 它仅适用于此价格,但使用相同的方法,产品价格为3.67,含税9%-->0.3303,变为0.34。总数是4.01,我需要这是4 有什么建议吗?尝试使用round()对价格加上最终计算的税额 php>$price=1.83$税=9;回声轮($pri

我的产品价格为1.83,税率为9%->0.1647。总价应该是2.00美元。 我希望这个值在四舍五入时有2位小数,为0.17。我试过了

(ceil(($item['price'] * $tax['percent'] / 100)*100)/100) 
它仅适用于此价格,但使用相同的方法,产品价格为3.67,含税9%-->0.3303,变为0.34。总数是4.01,我需要这是4

有什么建议吗?

尝试使用
round()
对价格加上最终计算的税额

php>$price=1.83$税=9;回声轮($price+ceil($price*$tax/100)*100)/100);
2.
菲律宾比索>$price=3.67$税=9;回声轮($price+ceil($price*$tax/100)*100)/100);
4.
编辑

php>$price=1.83$税=9$最终=整轮($price+ceil($price*$tax/100)*100)/100);
php>echo“价格:$Price,Tax:”。($最终价格-$价格);
价格:1.83,税金:0.17
菲律宾比索>$price=3.67$税=9$最终=整轮($price+ceil($price*$tax/100)*100)/100);
php>echo“价格:$Price,Tax:”。($最终价格-$价格);
价格:3.67,税金:0.33

您可以使用数字格式并指定小数,如中所示-

$sum = 1234.9874   
$total = "number_format($sum, 2, '.', '');
2是小数点,您可以将其更改为任意数量的小数点。点是分号分隔符,也可以改为逗号

您可以使用数字格式构造函数


希望这对您有所帮助。

以下内容将为您提供正确的税务信息。如果期望的小数位数超过4位,则可能需要重新驱动
.toFixed()

JaveScript

(+((($item['price'] * $tax['percent'] / 100)).toFixed(3)).toFixed(2)
PHP

number_format(number_format($item['price'] * $tax['percent']/100, 3, '.', ""), 2, '.', "")


谢谢,但那不行。我需要的价格和增值税的个别价值,在他们的更正后,因为我保存在数据库中,而不是总数。因此,当我添加它们时,它们应该是正确的,没有额外的舍入!e、 g.在第一个示例中,我将在第二个3.67价格中将1.83保存为价格,增值税从0.16更正为0.17,增值税从0更正为0.33。34@ChrysostomosPogiatzis您好,我已经编辑了我的答案,现在正是您所描述的。价格和修正后的税收现在是单独的价值。根据@Jon提供的更清晰的信息,这里给出的答案是正确的和不正确的。ceil(上限)表示一个浮点值,将把数字1.9947四舍五入为2,但逻辑表明该值不正确,可能返回不需要的值,如果这是Jon要求的值,则这是100%正确,因此我向上投票。@Andreouthuizen我使用了
ceil()
,因为我不想更改他所做的原始算法,除非有什么问题?@Jon.Frenchtoast我喜欢你的方法,但我认为它解决不了问题。四舍五入应有2位小数。您使用NONE,因此它将正确地四舍五入为2或4。。。如果价格是1.51,会发生什么?它将变成2,似乎你有不清楚的限制。为什么1.9947应该被四舍五入到2.00而不是1.99?嗨,安德烈。你的回答离题了,不是问题的意思。这个问题与舍入总和和单个值有关,以匹配不带-1的值cent@Angelos,我不同意,因为数字格式也根据我到PHP文档的链接正确地舍入数字——“它没有明确的文档;数字格式也舍入:”给定示例。我测试了这个,四舍五入是正确的。OP要求对数字进行四舍五入,并使用数字格式一次性给出的2位小数。但我同意Jay的意见,即数字1.9947不能四舍五入到2.00,因为值4尚未构成四舍五入,只有从5即1.9957四舍五入到2.00,其中1.9947将四舍五入到1.99
round(round(($item['price'] * $tax['percent']/100), 3), 2)