![]() |
1
1
这真的取决于你如何处理这些数字。如果你只是加减法,你必须处理一个 大的 对于您的数据范围,浮点错误累积到0.01的数字数。
如果您不了解它是如何工作的(并且性能不是应用程序中的全部),请使用BigDecimal以确保安全。内置类型应该快得多。 |
![]() |
2
1
此外,在处理货币时,没有理由不能简单地存储表示美分而不是美元的整数,这样就可以有效地使用定点表示。 如 即 4090或其他常数分数精度。)您将能够在不损失精度的情况下进行无限次的加减运算。 对于利息等计算,请使用浮点数执行计算,然后在存储之前简单地四舍五入到必要的精度。利息计算本身将具有必要的精度,并且您将在每个期间始终四舍五入到相同的小数位数,这通常是您在财务计算中想要的(我从未见过一家机构真的想在一个支付期到下一个支付期跟踪0.00001美元的情况——出于法律原因,他们会将账目精确到一定程度。) int 存储美分将使您最多代表21474836.47美元。你可以使用 储存$92233720368547758.07。要处理超过万亿的货币单位(以津巴布韦元表示美国预算?),请使用大十进制。 您可以在此处了解有关浮点比较的更多信息: What Every Computer Scientist Should Know About Floating-Point Arithmetic |
![]() |
Terio · Typescript:使用变量的值创建自定义类型 2 年前 |
![]() |
Kareem Adel · 创建函数类型(TypeScript接口) 2 年前 |
![]() |
MatÄj VondráÄek · 如何在c#方法中传递类型? 3 年前 |
![]() |
kreo · 为什么&[T]参数也接受&Vec? 7 年前 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 7 年前 |