使用JavaScript添加两个小数位数

时间:2016-06-08 05:54:44

标签: javascript netsuite

大家好!

我想知道如何以两位小数返回输出。而不是10,000我希望它返回10,000.00。我已经把.toFixed(2)放了,但它没有用。

当金额具有零以外的十进制数时,这些值会出现在打印输出上,但是当十进制数具有零值时,零点将不会出现在打印输出上。

另外,我在“Bill Credit”交易中添加了Wtax的值。

输出:

image showing data output

3 个答案:

答案 0 :(得分:3)

Numeral.js - 是一个可用于数字格式化的库。 您可以按如下方式格式化您的号码:

numeral(10000).format('$0,0.00');

希望这会对你有所帮助。

答案 1 :(得分:2)

你可以试试这个

var x = 1000;       // Raw input 
x.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')  //returns you 1,000.00

或者你也可以使用Netsuite的货币功能

nlapiFormatCurrency('1000');   // returns you 1,000.00
nlapiFormatCurrency('1000.98');   // returns you 1,000.98

答案 2 :(得分:0)

您可以考虑以下代码。它可以根据小数位舍入十进制值。
这也解决了在舍入负值时通过在舍入之前获得第一个绝对值来解决问题的问题。如果不这样做,您将得到以下第二个样本不正确的结果。
Results from typical approach

function roundDecimal(decimalNumber, decimalPlace)
{
//this is to make sure the rounding off is correct even if the decimal is equal to -0.995
var bIsNegative = false;
if (decimalNumber < 0)
{
    decimalNumber = Math.abs(decimalNumber);
    bIsNegative = true;
}
var fReturn = 0.00;
(decimalPlace == null || decimalPlace == '') ? 0 : decimalPlace;

var multiplierDivisor = Math.pow(10, decimalPlace);
fReturn = Math.round((parseFloat(decimalNumber) * multiplierDivisor).toFixed(decimalPlace)) / multiplierDivisor;

fReturn = (bIsNegative) ? (fReturn * -1) : fReturn;
fReturn = fReturn.toFixed(decimalPlace)

return fReturn;
}

以下是测试样品
Test sample1

这个测试样本在解决了负值的问题之后 enter image description here