0

我正在向 UI 添加用户输入,因为他们添加数字并返回结果。输入是货币,所以我需要执行两位小数而不是四舍五入。

这是我的代码示例:

    function ceiling2(number) {
  var ceiling2;
  return ceiling2 = Math.ceil(number*100)/100;
}
//Totals
function lD23Total (e){
  var app = UiApp.getActiveApplication();
  var tB1v = parseInt(e.parameter.TextBox1);
  var tB9v = parseInt(e.parameter.TextBox9);
  var tB17v = parseInt(e.parameter.TextBox17);
  var tB25v = parseInt(e.parameter.TextBox25);
  var tB33v = parseInt(e.parameter.TextBox33);
  var tB41v = parseInt(e.parameter.TextBox41);
  var tB49v = parseInt(e.parameter.TextBox49);
  var lD23 = app.getElementById("LabelD23").setStyleAttribute('fontWeight','bold');
  var lD23T = tB1v + tB9v + tB17v + tB25v + tB33v + tB41v + tB49v;
  lD23.setText("$ " + ceiling2(lD23T));

  var app = UiApp.getActiveApplication();
  app.close();
  return app;  
}

目前它返回一个四舍五入的数字。

感谢您提供的建议!

乔恩

4

2 回答 2

0

函数 parseInt() 会将值转换为整数,删除小数点后的值。请改用 parseFloat()。

于 2012-05-09T14:40:46.677 回答
0

我认为您的功能很好...如果您删除 parseInt() 并按照 Eric 或 Number() 的建议将其替换为 parseFloat() 它应该可以工作...如果不是,那么问题可能来自方式数字写成:

如果您使用了 26,4567,但您应该使用 26.4567 并用点作为分隔符来代替逗号。

你能试着让我们知道吗?问候, 塞尔吉

或者您可以在发送到您的函数之前使用它:

var newnumber=Number(number.toString().replace(",","."));// convert to string, replace comma with dot and set as number again.

并且您的功能在这两种情况下都可以使用

于 2012-05-09T16:21:06.320 回答