问题标签 [mathcontext]
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.
java - java.math.MathContext 的使用
最近我尝试理解java.math.MathContext的使用但未能正确理解。是否用于四舍五入java.math.BigDecimal
。如果是,为什么不四舍五入十进制数字,甚至尾数部分。
从 API 文档中,我了解到它遵循和规范中指定的标准,ANSI X3.274-1996
但ANSI X3.274-1996/AM 1-2000
我没有让它们在线阅读。
如果您对此有任何想法,请告诉我。
javascript - 如何替换子字符串的所有实例,但只替换 JS 中的整个世界?
例如这个函数
将从这里返回
我的猫头上有顶帽子。
对此
我的骗子头上有名。
但我想回来
我的猫头上戴着一顶帽子。
scala - BigDecimals 中的 MathContexts - ScalaCheck 生成器创建无法序列化然后反序列化的 BigDecimals。如何正确使用 MathContexts?
我在 Scalacheck 中发现了一个问题,它会arbitrary[BigDecimal]
生成BigDecimal
无法转换为String
s 然后再转换为 sBigDecimal
的 s,我正在尝试与创建者一起寻找解决方案,但我不确定MathContext
s 是如何来的玩。
原始生成器如下所示:
问题在于BigDecimal
使用的构造函数反转了scale
参数的符号,从而使Int.MinValue
变成scale
大于 2^32 -1。
修复的核心是通过 中的位数增加下限unscaledVal
,但我只是想到了一种方法来做到这一点MathContext.UNLIMITED
。如果我们这样做,我担心我们会错过生成器的鲁棒性:
那么,如果我们想继续使用其他MathContext
的,我们必须做些什么来确保我们正确地使用它们呢?
java - BigDecimal 和 MathContext 的行为不一致
我看到 BigDecimal 的一些奇怪行为当我使用 mathContext 进行除法时,输出与我通过直接提供比例和舍入模式进行除法时不同 这是我认为应该提供相同输出的示例
输出:
使用 MathContext 时,似乎对比例的处理方式有所不同。或者我不明白什么时候使用哪个。
java - 是否存在 Bigdecimal 和 MathContext.DECIMAL32 不能提供正确结果的情况?
System.out.println("Result="+new BigDecimal(((63.19* 15) + (63.37* 5))).divide(new BigDecimal(15 + 5), MathContext.DECIMAL64).doubleValue());
结果=63.23499999999999
但是随着MathContext.DECIMAL32
我们得到正确的结果,请参见下文:
System.out.println("Result="+new BigDecimal(((63.19* 15) + (63.37* 5))).divide(new BigDecimal(15 + 5), MathContext.DECIMAL32).doubleValue());
结果=63.235
java - 加法、减法和乘法需要数学上下文?
首先,我的搜索能力可能没有我希望的那么好,所以这种问题可能已经存在。如果是这样请告诉我..
请参阅下面的代码:
对比
在哪些情况下我真的需要一个数学上下文(除部门除外)?
除非我划分某些东西,否则我从不使用数学上下文。据我所知,这总是有效的,那么这里的缺点可能是什么?我需要关于加法、减法和乘法的数学上下文吗?我对 BigDecimal 不太了解,我只是想用它来避免丢失任何信息,比如使用双打时。正如我有时在添加某些东西时看到带有 mathcontext 的代码,我太害怕仅仅删除它,因为我认为它是无用的......
我读了那个问题,但没有真正找到我的具体问题的正确答案......我从没有 mathcontext 的 BigDecimals 开始,然后用它们计算。所以我的问题是,在信息丢失/精度等方面,我是否会有缺点?或者这只会导致最大的信息,就是这样?
编辑:我不想四舍五入,从来没有。当然,在像 1/3 这样的除法的情况下,我必须这样做,但在加法、乘法和减法的情况下,我不需要任何舍入。那么在任何情况下我都需要数学上下文吗?
java - MathContext.DECIMAL32 vs MathContext.DECIMAL64,使用哪一个,为什么?
我应该使用MathContext.DECIMAL32
orMathContext.DECIMAL64
吗?我查看了文档,但我也无法真正理解何时使用。
我使用 BigDecimal 来表示我想应用于一定金额的百分比。像这样的东西:
我正在使用 oracle java 1.8, ubuntu 14.04, Intel core i7 (64bit)
java - IBM java8 BigDecimal 浮动问题与 MathContext.DECIMAL64
IBM java 8 中的 BigDecimal 在使用 MathContext.DECIMAL64 添加浮点十进制数时计算不正确的值。下面是示例代码
上面的代码打印为 1.000000000000000 而不是 1.004166666666666667
但是,在上面的最后一行代码中,如果我删除 MathContext,它会返回正确的值 1.004166666666666667。
注意:使用相同的JVM调试上述代码时,在调试模式下,该值也是1.004166666666666667。
问题:为什么它会导致 JVM 在有/没有 MathContext 或在调试模式下返回不同的值?
使用 IBM JDK 1.6、1.8 和 Oracle JDK 1.8 进行测试。仅在 IBM JDK 1.8 中遇到此问题
IBM JDK 1.8 下面有这个问题
java 版本“1.8.0”Java(TM) SE 运行时环境(构建 pwa6480sr3-20160428_01(SR3))IBM J9 VM(构建 2.8,JRE 1.8.0 Windows 7 amd64-64 压缩参考 20160427_301573(禁用 JIT,禁用 AOT)J9VM - R28_Java8_SR3_20160427_1620_B301573 GC - R28_Java8_SR3_20160427_1620_B301573_CMPRSS J9CL - 20160427_301573) JCL - 20160421_01 基于 Oracle jdk8u91-b14
java - 精确计算黄金比例
我的任务是计算黄金比例 (phi = (1+ sqrt(5))/2)。但是我需要用大约 50 个小数位/小数位来计算它,然后将结果四舍五入到 30 个小数位并在控制台上打印出来。我可以使用 BigDecimal 和 MathContext。有谁知道如何计算它?我现在迷路了。谢谢
java - 如何在 Java 中为 Math.Context 设置比例?
我在编码中使用 Math.Context。现在的问题是 Math.Context 正在计算小数点后的所有内容。我想为 Math.Context 定义 8 的比例(表示小数点后 8 位)。请注意,我不是在寻找精确度。我知道如何定义精度。我需要规模。
这是我的 Math.Context 代码行: