首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在accounting.js中将小数点添加到十进制数中?

如何在accounting.js中将小数点添加到十进制数中?
EN

Stack Overflow用户
提问于 2018-07-03 10:23:27
回答 2查看 919关注 0票数 0

我正在做一个销售点的工作,我正在使用accounting.js格式化一个在支付模块中正在投标的金额的数字。

显然,我希望字段有一个浮动值,所以我有一个虚拟数字垫,当单击它时,它将连接每个按钮的值,如下所示:

但是当我点击十进制按钮时,它就不起作用了。这是我迄今为止尝试过的,不确定我错过了什么。

代码语言:javascript
复制
// Payment Numpad  
$('section.payment-numpad .number-char').click(function(){

    let num = $(this).data('action');
    let defaultAmt = $('td.col-tendered.edit').text().replace(/,/g, "");
    let tendered;
    if(defaultAmt === "0.00"){
        tendered = num;
    }else{
        tendered = defaultAmt + num;
    }

    $('td.col-tendered.edit').text(accounting.formatNumber(parseFloat(tendered)));
    return false;
});

我也尝试了.toFixed(2)在accounting.js,但仍然不能工作。

更新:这里的是供参考的视频

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-03 17:42:51

试试这个,希望这对你有帮助:)

代码语言:javascript
复制
function operator(amt, num) {
    let val = '';
    switch (num) {
     case '.':
      if (parseFloat(amt) == 0) {
       val = '0.';
      } else {
       if (amt.indexOf('.') > -1) {
        val = amt;
       } else {
        val = amt + '.';
       }
      }
      break;
    }
    return val;
   }

   $('section.payment-numpad .number-char').click(function () {
    let that = $(this),
            data = that.data(),
            num = data.action;

    let defaultAmt = $('.col-tendered.edit').data('value');
    let tendered;

    if (isNaN(parseFloat(defaultAmt))) {
     defaultAmt = 0;
    }

    if (that.hasClass('operator')) {
     tendered = operator(defaultAmt, num);
    } else {
     tendered = defaultAmt + '' + num;
    }

    $('.value').text(tendered);
    $('.col-tendered.edit').attr('data-value', tendered).data('value', tendered);
    var precision = 2;
    /*if (tendered != '') {
     var s = tendered.split('.');
     if (s[1] != undefined) {
      precision = s[1].length;
     }
    }*/
    $('.col-tendered.edit').text(accounting.formatNumber(parseFloat(tendered), precision));
    return false;
   });
代码语言:javascript
复制
table {
  width: 100%;				
}
.number-char {
  padding: 10px;
  background: #000;
  color: #fff;
  cursor: pointer;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="http://openexchangerates.github.io/accounting.js/accounting.min.js"></script>
  <section class="payment-numpad">
   <div class="col-tendered edit" data-value=""></div>
   <!--<div>Input Value: <span class="value"></span></div>-->
   <table>
    <tr>
     <td class="number-char" data-action="1">1</td>
     <td class="number-char" data-action="2">2</td>
     <td class="number-char" data-action="3">3</td>
    </tr>
    <tr>
     <td class="number-char" data-action="4">4</td>
     <td class="number-char" data-action="5">5</td>
     <td class="number-char" data-action="6">6</td>
    </tr>
    <tr>
     <td class="number-char" data-action="7">7</td>
     <td class="number-char" data-action="8">8</td>
     <td class="number-char" data-action="9">9</td>
    </tr>
    <tr>
     <td class="number-char" data-action="0">0</td>
     <td class="number-char operator" data-action=".">.</td>
    </tr>
   </table>
  </section>

使用precision设置小数点后的固定值

代码语言:javascript
复制
var precision = 2;
$('.col-tendered.edit').text(accounting.formatNumber(parseFloat(tendered), precision));
票数 0
EN

Stack Overflow用户

发布于 2018-07-03 10:32:57

在文件里。要么在全球范围内改变设置..。

代码语言:javascript
复制
// Settings object that controls default parameters for library methods:
accounting.settings = {
    currency: {
        symbol : "$",   // default currency symbol is '$'
        format: "%s%v", // controls output: %s = symbol, %v = value/number (can be object: see below)
        decimal : ".",  // decimal point separator
        thousand: ",",  // thousands separator
        precision : 2   // decimal places
    },
    number: {
        precision : 0,  // default precision on numbers is 0
        thousand: ",",
        decimal : "."
    }
}

或者在本地更改设置..。

代码语言:javascript
复制
// Standard usage and parameters (returns string):
accounting.formatNumber(number, [precision = 0], [thousand = ","], [decimal = "."])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51152202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档