簡體   English   中英

添加用戶輸入而不四舍五入(Google Apps腳本)

[英]Adding User input without rounding (Google Apps Script)

我在用戶添加數字並返回結果時將用戶輸入添加到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;  
}

當前,它返回一個四舍五入的數字。

感謝您提出的建議!

喬恩

函數parseInt()會將值轉換為整數,將值刪除到小數點后。 請改用parseFloat()。

我認為您的功能很好...如果您刪除parseInt()並按照Eric或Number()的建議將其替換為parseFloat(),它應該可以正常工作...否則,問題可能出在數字寫為:

如果您使用的是26,4567,但應使用26.4567(帶點作為分隔符)代替逗號。

您可以嘗試使我們了解情況嗎? 問候,Serge

或者,您可以在發送給函數之前使用它:

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

並且您的功能在兩種情況下都可以工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM