问题标签 [bigdecimal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9102 浏览

java - 用于检查字符串是否包含*无*异常的数字的 Java 库

如果传递的字符串是有效数字(例如“123.55e-9”、“-333,556”),我正在寻找一种返回布尔值的方法。我不想只是这样做:

显然,该函数应该使用状态机 (DFA) 来解析字符串以确保无效示例不会欺骗它(例如“-21,22.22.2”、“33-2”)。你知道是否存在这样的图书馆吗?我真的不想自己写,因为这是一个显而易见的问题,我敢肯定我会重新发明轮子。

谢谢,

缺口

0 投票
0 回答
1889 浏览

java - BigDecimal 的 Java 数学函数

可能重复:
Java BigDecimal 三角方法

是否有互补的数学函数用于java.lang.Math充分利用 的功能BigDecimal?换句话说,是否有一个 log 函数接受并返回 aBigDecimal类似于 log 函数接受并返回 a double

0 投票
3 回答
20604 浏览

oracle - oracle休眠序列生成器问题

我正在使用 oracle 11g、Java(struts2) 和 Hibernate 开发应用程序。

我有一个名为 mytemp 的表,其列 mytemp_id 的类型为 NUMBER(22,0)。

在我的 mytemp.hbm.xml 文件中,id 如下所示

在我的名为“MYTEMP_TEMP_ID_SEQ”的 Oracle 数据库序列中,创建并在 Oracle 中正常工作。

现在,当我尝试使用休眠插入记录时,它给了我以下错误

org.hibernate.id.IdentifierGenerationException: 这个 id 生成器生成 long、integer、short 或 string

似乎当我的序列返回数字时,休眠将其视为 BigDecimal,而休眠的序列生成器类仅考虑长、整数、短和字符串的值。

Hibernate 不应该有 BigDecimal 的问题。但我认为他们还没有为序列生成器实现 BigDecimal

任何人都可以帮我解决问题吗?

谢谢。

0 投票
6 回答
65754 浏览

java - Java BigDecimal 删除小数和尾随数字

我是 Java 新手,并试图采用 BigDecimal(例如 99999999.99)并将其转换为字符串,但没有小数位和尾随数字。另外,我不想在数字中使用逗号,也不需要四舍五入。

我试过了:

但不支持 BigDecimal。

有任何想法吗?

非常感谢。

0 投票
1 回答
2476 浏览

scala - Scala BigDecimal 除法

scala 上的除法运算符有什么用BigDecimal

为了使它起作用,您需要DECIMAL128在小数上定义一个上下文。不幸的是,我能看到这样做的唯一方法是:

但这只是一团糟!我错过了什么吗?

0 投票
2 回答
997 浏览

scala - Scala 的 BigDecimal 是否违反了 equals/hashCode 合同?

根据Ordered trait需求,equalsScalaBigDecimal类上的方法与顺序一致。但是,哈希码只是从包装中获取的java.math.BigDecimal,因此与 equals 不一致。

我找不到任何关于这是一个已知问题的参考。我错过了什么吗?

0 投票
9 回答
121570 浏览

java - 使用 BigDecimal 处理货币

我试图使用多头来创建自己的货币类,但显然我应该使用它BigDecimal。有人可以帮我开始吗?将BigDecimals 用于美元货币的最佳方法是什么,例如将其设置为至少但不超过 2 个美分小数位等。APIBigDecimal非常庞大,我不知道该使用哪种方法。此外,BigDecimal具有更好的精度,但如果它通过 a 不是全部丢失了double吗?如果我做 new BigDecimal(24.99),它与使用 a 有什么不同double?或者我应该使用使用 a 的构造函数String吗?

0 投票
2 回答
388 浏览

java - Java - BigDecimal 太多?

有关更多信息,请参阅我的另一个问题,此处。所以无论如何,我在我的应用程序中使用 BigDecimals 来表示货币(它扣除了降价百分比并增加了销售税),但似乎如果我使用 BigDecimal 作为价格,一切都需要是 BigDecimals。是否可以将 BigDecimal 用于降价百分比字段(而不是浮点数)以及 PST 和 GST 常量(销售税,0.08 和 0.05)?哦,还有,你认为我应该将降价字段存储为百分比还是小数?无论哪种方式,我都必须将其转换为另一个进行显示,因为我显示p / 100 = d。小计是指税前的总成本,对吧?

谢谢!!

0 投票
7 回答
12253 浏览

java - 使用 BigDecimal 会如何影响应用程序的性能?

我想使用 BigDecimal 来表示任意精度数字,例如在每秒具有数千个订单和执行报告的低延迟交易应用程序中的价格和金额。

我不会对它们做很多数学运算,所以问题不在于 BigDecimal 本身的性能,而在于 BigDecimal 对象的大容量会影响应用程序的性能。

我担心的是,大量的短期 BigDecimal 对象会给 GC 带来压力,并导致 CMS 收集器中出现更大的 Stop-The-World 停顿——这绝对是我想要避免的。

您能否确认我的担忧并提出使用 BigD 的替代方案?另外,如果您认为我的担忧是错误的 - 请解释原因。

更新

感谢所有回答的人。我现在确信使用 BigDecimal 会损害我的应用程序的延迟(即使我仍打算测量它)。

目前,我们决定坚持使用“非常非 OOP”的解决方案(但不会影响准确性) - 使用两个ints,一个用于尾数,另一个用于指数。这背后的基本原理是原语放置在堆栈上,而不是堆上,因此不受垃圾收集的影响。

0 投票
2 回答
905 浏览

java - BigDecimal 的 StringBuilder 的模拟

我有一个 BigDecimals 列表来总结。如果它们是要连接的字符串,我会使用 StringBuilder 来减少对象创建。BigDecimal 有类似的东西吗?或者也许我不应该为此烦恼?BigDecimal 创建的优化值得付出努力吗?