当前位置: 首页 > 面试题库 >

JavaScript中的精确财务计算。什么是陷阱?

居琛
2023-03-14
问题内容

为了创建跨平台代码,我想用JavaScript开发一个简单的财务应用程序。所需的计算涉及复利和相对较长的十进制数。我想知道使用JavaScript进行此类数学运算时应避免的错误-
如果有可能的话!


问题答案:

您可能应该将小数点后的值乘以100,并将所有货币值表示为整分。JavaScript中没有十进制数据类型-唯一的数字数据类型是浮点数。因此,通常建议将钱作为2550美分而不是25.50美元。

考虑一下JavaScript:

var result = 1.0 + 2.0;     // (result === 3.0) returns true

但:

var result = 0.1 + 0.2;     // (result === 0.3) returns false

表达式0.1 + 0.2 === 0.3返回false,但幸运的是,浮点数的整数运算是精确的,因此可以通过缩放1来避免小数表示错误。

请注意,尽管实数集是无限的,但只能用JavaScript浮点格式精确表示实数中的有限数(准确地说是18,437,736,874,454,810,627)。因此,其他数字的表示将是实际数字2的近似值。



 类似资料:
  • 本文向大家介绍什么是财务会计周期?,包括了什么是财务会计周期?的使用技巧和注意事项,需要的朋友参考一下 会计过程是一个过程,它不断记录和处理公司的财务交易。它可以识别,分析和记录公司的日常交易。早先,它是手动输入的,这需要花费大量时间,并且出错的机会很高。 计算机化有助于减少数学错误并节省准备财务图表的大量时间。如今,使用了新的软件,该软件减少了人工工作,并最大程度地减少了错误。 会计期间从会计年

  • 问题内容: 在类型的计算列上创建索引会引发以下错误: 无法在表“ MyTable”上创建索引或统计信息“ MyIndex”,因为计算出的列“ MyColumn”不精确且无法持久保存。考虑从索引或统计键中删除列,或将计算的列标记为持久存在。 什么 不精确的 列是什么意思? 更新。定义如下: UPDATE2。的定义如下: 问题答案: 根据MSDN,必须持久保留CLR Function列以进行索引: 任

  • 问题内容: 我遇到了一个问题,我正在开发一个应该能够进行一些数学计算的应用程序。这些计算必须是准确的(或者显然不是错误的) 但是这个简单的代码 给我一个错误的结果c不是预期的0.003048而是0.0030480000000000004这显然是错误的。 第二个代码片段给出了正确的结果。 我知道在使用计算机进行计算时,并不是所有的浮点运算都是精确的,但是我不知道如何解决这个问题。 提前致谢! 路德维

  • 本文向大家介绍财务管理中的国际保理是什么?,包括了财务管理中的国际保理是什么?的使用技巧和注意事项,需要的朋友参考一下 在国际保理业务中,出口商将雇用在保理公司工作的保理员。该因素负责所有现金流量。该因素是对出口商商品进口价格的保证。 国际保理的功能如下- 工厂雇用当地人与进口商打交道。 Factor将研究出口商和进口商之间的财务问题。 富因特将在市场上寻找有强大财务潜力的进口商。 保理商从进口商

  • 本文向大家介绍JavaScript中的运算符是什么?,包括了JavaScript中的运算符是什么?的使用技巧和注意事项,需要的朋友参考一下 让我们采用一个简单的表达式“ 4 + 5等于9”。这里4和5称为操作数,“ +”称为运算符。 JavaScript支持以下类型的运算符。 算术运算符 比较运算符 逻辑(或关系)运算符 赋值运算符 条件(或三元)运算符 例 这是一个说明运算符示例的示例-

  • 我理解二进制数的理论,所以双精度数的运算是不精确的。但是,在java中,我不知道为什么“(double)65 / 100”是0.65,这在十进制数上是完全正确的,除了0.6500000000004。