如何在JavaScript中处理货币?

如何在JavaScript中处理货币?,javascript,Javascript,从我读到的内容来看,JavaScript中的数字实际上是以浮点形式存储的,不存在真正的整数类型。这准确吗 如果没有整数类型,那么如何准确存储货币?作为字符串或其他东西?要显示为货币,toFixed是一种很好的方法: var someMoney = 123.1; var formattedCurrency = someMoney.toFixed(2); //this is now the string "123.10" console.log('$' + formattedCurrency);

从我读到的内容来看,JavaScript中的数字实际上是以浮点形式存储的,不存在真正的整数类型。这准确吗


如果没有整数类型,那么如何准确存储货币?作为字符串或其他东西?

要显示为货币,
toFixed
是一种很好的方法:

var someMoney = 123.1;
var formattedCurrency = someMoney.toFixed(2); //this is now the string "123.10"
console.log('$' + formattedCurrency);
[…]并且没有真正的整数类型。这准确吗


如果没有整数类型,那么如何准确存储货币

您仍然可以使用我们认为是整数的值,即<代码> 5 ,<代码> 42 < /代码>等。这些值是准确的。“整型”值只有在大于2^53时才会失去精度

在任何语言中,您都应该避免使用有理数来表示货币,如果您使用它进行任何计算的话。也就是说,您应该使用
413,而不是
4.13


请参见

另请参见“如何准确存储货币?”我想说的是,JavaScript和real money之间的关系不太好,主要是从安全角度来看。谢谢!这对我帮助很大,而且更有意义!那么,你是说,如果我想存储9.99美元,那么我最好将其存储为999,并在检索后除以100?是的!以最小单位(例如,便士)存储货币值。您应该将其存储为999,将其操作为999,并仅在显示时将其转换为9.99。好的,我想将货币值存储为便士。但要把它从美元变成便士,还需要进行100的乘法运算。如果你想把用户的输入转换成硬币,这似乎是不可避免的。简要介绍如何在JS和其他应用程序中处理金钱languages@DougCoburn也许我误解了你,但是你提供的代码绝对应该是1.25和1.00。我想你应该再检查一下你的数学,否则我会很感激你对这个问题的另一种解释。OP询问如何存储货币,这正是我的代码所做的。