问题标签 [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 投票
2 回答
5764 浏览

scala - 为什么有从 Float/Double 到 BigDecimal 的隐式转换,而不是从 String 的隐式转换?

虽然从Doubles 到BigDecimals 的转换情况相比 Java 有所改善

和类似的东西

工作得很好,像这样的隐式转换不是很合理吗

默认情况下可用,它可以像这样将字符串转换为 BigDecimals?

或者我是否遗漏了一些东西,Scala 使用BigDecimal带有浮点值而不是 a 的构造函数解决了 Java 的所有“问题” String,并且BigDecimal(String)在 Scala 中基本上不再需要?

0 投票
2 回答
2349 浏览

mysql - Ruby BigDecimal 和 MySQL 小数精度不匹配

我正在使用 Rails 3.0.3 在 MySQL 数据库中存储一些纬度和经度。这是我用来创建表的迁移的一部分(注意具有给定精度的十进制值):

下面的 RSpec 示例应该说明它出错的地方。

我使用 BigDecimal 进行一些计算,结果my_value是一个精度很高的数字(大于迁移中指定的数字)。我将对象存储在数据库中并再次检索它。

将原始值与数据库值进行比较失败,因为它们的精度不同,因此不再是相同的数字:

我理解为什么会发生这种情况(MySQL 中的小数精度!= BigDecimal 的精度),但谁能告诉我在将my_valueBigDecimal 写入数据库之前如何限制它的精度以确保它尊重数据库约束?

谢谢!

0 投票
0 回答
1427 浏览

ruby - 将 Ruby BigDecimal 数字四舍五入到最接近的 0.05 的最佳方法是什么?

Ruby 的 BigDecimal #round 方法将数字四舍五入到最接近的整数(并令人沮丧地将其作为固定数字返回)。是否有内置方法允许四舍五入到最接近的 0.05?我找不到一个。

我管理过的最好的是

0 投票
1 回答
1164 浏览

oracle - blazeds 将 BigDecimal 转换为字符串

我有一个使用 blazeds 连接到 Java 后端的 Flex 应用程序。使用远程处理,我调用 API 以在 Oracle 数据库中的表(使用常规 JDBC 类)上运行 SELECT 语句。

该表有 2 列:

我的 Java API 如下:

在我的 Flex 方面,我有一个用于此远程操作的结果事件的处理程序:

奇怪的是,DEMAND列对应的值自动转换为字符串(我调试发现在后端,这些是BigDecimal)

有什么建议么?

0 投票
1 回答
2920 浏览

java - Java BigDecimal 替代库

这可能特别奇怪,但我必须针对 GCJ 编译几个新代码;不支持 Java 的 BigDecimal。

我正在寻找的是 java.math.BigDecimal 的替代品。

谁能指出我正确的方向?

谢谢!

0 投票
9 回答
25305 浏览

c++ - 是否有与 Java 的 BigDecimal 等效的 C++?

我正在寻找可以进行十进制浮点运算的 C++ 类。浏览http://speleotrove.com/decimal/可以找到人们编写但未维护的各种类的链接。挖掘 decNumber++ 的内容后,我收到了一些电子邮件,表明 GCC 最终将支持此功能。(正式名称为 ISO/IEC TR 24733)

我正在寻找可以用作浮动或双精度的替代品,其他人在他们自己的项目中使用的东西。希望开源。

谢谢!

编辑:我应该指出我试图用它来代表价格。所以我需要精确的小数,而不是巨大的小数。

0 投票
1 回答
5123 浏览

c - C 有没有 BigDecimal 类?

我查遍了整个互联网,但似乎找不到一个。

Java中有类似的东西,但我需要使用C(最好是我可以在本地使用的东西)。有没有人有任何想法?

0 投票
3 回答
10180 浏览

java - 如何在 Java 中创建随机 BigDecimal?

这个问题:How to generate a random BigInteger描述了一种实现与 BigIntegers 的 Random.nextInt(int n) 相同语义的方法。

我想对 BigDecimal 和 Random.nextDouble() 做同样的事情。

上述问题中的一个答案建议创建一个随机的 BigInteger,然后从中创建一个具有随机比例的 BigDouble。一个非常快速的实验表明这是一个非常糟糕的主意:)

我的直觉是,使用这种方法需要将整数缩放为n-log10(R),其中 n 是输出中所需的精度位数,R 是随机 BigInteger。这应该允许出现正确的位数,以便(例如)1 -> 10^-64 和 10^64 -> 1。

还需要正确选择缩放值,以使结果落在 [0,1] 范围内。

有没有人这样做过,他们知道结果是否正确分布?有没有更好的方法来实现这一目标?

编辑:感谢@biziclop 纠正了我对 scale 参数的理解。以上不是必需的,恒定的比例因子具有预期的效果。

供以后参考,我的(显然是工作代码)是:

0 投票
3 回答
1673 浏览

java - 在 IBM WebSphere 上运行的意外异常 java.math.BigDecimal

在 IBM WebSphere 上运行 Java 应用程序导致了这样的异常:

空值检查完成。正如我回顾java.math.BigDecimal类没有这样的方法add2DFP也没有调用一个。也许它特定于 IBM 的 JDK。

对此的任何评论将不胜感激。

提供有关异常的代码

实例在 IBM JDK 1.6 上运行。

0 投票
1 回答
1296 浏览

ruby-on-rails - 如何强制 BigDecimal 的有效位数

我在 mysql 中定义了一个比例/有效数字为 4 的十进制字段(例如 10.0001 )。ActiveRecord 将其作为 BigDecimal 返回。

我可以在 ActiveRecord 中以 5 的比例设置字段(例如 10.00001 ),然后保存它,这有效地截断了值(它存储为 10.0000)。

有没有办法防止这种情况?如果有强制缩放的方法,我已经看过 BigDecimal 类。找不到一个。我可以计算 BigDecimal 的比例并返回验证错误,但我想知道是否有更好的方法来执行它。