在javascript中卡住了我

| 你好,我想四舍五入的金额,但无法做到,完全卡住。 我的情况是,我有
base
数量,and0ѭ上有
marukup %
。基于这两个,我想计算
total amount
。我已经计算了金额,但是我想四舍五入。 我已经使用以下公式
amount=base+((base/100)*markup
这个公式总是给我没有小数点的结果。我想获得精确的金额,最多两位小数。我这样用了
math.round
amount=math.round(base+((base/100)*markup).toFixed(2)
但它始终返回不带小数点的结果。例如,我的基本值为
121
,标记为
5%
amount
应该是
127.05
。但以上公式始终返回
127
。有准则吗?     
已邀请:
toFixed(n)
函数将数字四舍五入到小数点后n位,根本不需要使用
Math.round
。尝试:
total = function (base, markup) { return (base + (base * markup / 100)); }; 
amount = total(121,5).toFixed(2);
请注意,“ 9”将是“ 16”,而不是“ 17”。     
我很确定math.round返回一个整数。即使您对它进行四舍五入,反正也只会是127.00。 这是正确的解决方案(但这并不容易): 不要为了金钱而使用非整数值! 它不起作用。 使用整数(分)。 也就是说,将12700保留在您的应用中,而不是127。 这样,所有舍入都可以正常工作。     
这应该工作:     amout =(Math.round((base *(1 + markup))* 100)/ 100).toFixed(2) 顺便说一句,我使用的标记为5/100 ...     
对我来说,这听起来像是整数除法问题。我猜想javascript将100视为一个整数。 尝试这个:
amount=(base+((base/100.toFixed(2))*markup).toFixed(2)
    

要回复问题请先登录注册