问题标签 [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.
scala - 为什么有从 Float/Double 到 BigDecimal 的隐式转换,而不是从 String 的隐式转换?
虽然从Double
s 到BigDecimal
s 的转换情况相比 Java 有所改善
和类似的东西
工作得很好,像这样的隐式转换不是很合理吗
默认情况下可用,它可以像这样将字符串转换为 BigDecimals?
或者我是否遗漏了一些东西,Scala 使用BigDecimal
带有浮点值而不是 a 的构造函数解决了 Java 的所有“问题” String
,并且BigDecimal(String)
在 Scala 中基本上不再需要?
mysql - Ruby BigDecimal 和 MySQL 小数精度不匹配
我正在使用 Rails 3.0.3 在 MySQL 数据库中存储一些纬度和经度。这是我用来创建表的迁移的一部分(注意具有给定精度的十进制值):
下面的 RSpec 示例应该说明它出错的地方。
我使用 BigDecimal 进行一些计算,结果my_value
是一个精度很高的数字(大于迁移中指定的数字)。我将对象存储在数据库中并再次检索它。
将原始值与数据库值进行比较失败,因为它们的精度不同,因此不再是相同的数字:
我理解为什么会发生这种情况(MySQL 中的小数精度!= BigDecimal 的精度),但谁能告诉我在将my_value
BigDecimal 写入数据库之前如何限制它的精度以确保它尊重数据库约束?
谢谢!
ruby - 将 Ruby BigDecimal 数字四舍五入到最接近的 0.05 的最佳方法是什么?
Ruby 的 BigDecimal #round 方法将数字四舍五入到最接近的整数(并令人沮丧地将其作为固定数字返回)。是否有内置方法允许四舍五入到最接近的 0.05?我找不到一个。
我管理过的最好的是
oracle - blazeds 将 BigDecimal 转换为字符串
我有一个使用 blazeds 连接到 Java 后端的 Flex 应用程序。使用远程处理,我调用 API 以在 Oracle 数据库中的表(使用常规 JDBC 类)上运行 SELECT 语句。
该表有 2 列:
我的 Java API 如下:
在我的 Flex 方面,我有一个用于此远程操作的结果事件的处理程序:
奇怪的是,DEMAND列对应的值自动转换为字符串(我调试发现在后端,这些是BigDecimal)
有什么建议么?
java - Java BigDecimal 替代库
这可能特别奇怪,但我必须针对 GCJ 编译几个新代码;不支持 Java 的 BigDecimal。
我正在寻找的是 java.math.BigDecimal 的替代品。
谁能指出我正确的方向?
谢谢!
c++ - 是否有与 Java 的 BigDecimal 等效的 C++?
我正在寻找可以进行十进制浮点运算的 C++ 类。浏览http://speleotrove.com/decimal/可以找到人们编写但未维护的各种类的链接。挖掘 decNumber++ 的内容后,我收到了一些电子邮件,表明 GCC 最终将支持此功能。(正式名称为 ISO/IEC TR 24733)
我正在寻找可以用作浮动或双精度的替代品,其他人在他们自己的项目中使用的东西。希望开源。
谢谢!
编辑:我应该指出我试图用它来代表价格。所以我需要精确的小数,而不是巨大的小数。
c - C 有没有 BigDecimal 类?
我查遍了整个互联网,但似乎找不到一个。
Java中有类似的东西,但我需要使用C(最好是我可以在本地使用的东西)。有没有人有任何想法?
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 参数的理解。以上不是必需的,恒定的比例因子具有预期的效果。
供以后参考,我的(显然是工作代码)是:
java - 在 IBM WebSphere 上运行的意外异常 java.math.BigDecimal
在 IBM WebSphere 上运行 Java 应用程序导致了这样的异常:
空值检查完成。正如我回顾java.math.BigDecimal类没有这样的方法add2DFP也没有调用一个。也许它特定于 IBM 的 JDK。
对此的任何评论将不胜感激。
提供有关异常的代码
实例在 IBM JDK 1.6 上运行。
ruby-on-rails - 如何强制 BigDecimal 的有效位数
我在 mysql 中定义了一个比例/有效数字为 4 的十进制字段(例如 10.0001 )。ActiveRecord 将其作为 BigDecimal 返回。
我可以在 ActiveRecord 中以 5 的比例设置字段(例如 10.00001 ),然后保存它,这有效地截断了值(它存储为 10.0000)。
有没有办法防止这种情况?如果有强制缩放的方法,我已经看过 BigDecimal 类。找不到一个。我可以计算 BigDecimal 的比例并返回验证错误,但我想知道是否有更好的方法来执行它。