草庐IT

bigdecimal

全部标签

ruby - 如何在 BigDecimal 构造函数中使用 String 指定精度参数?

BigDecimal构造函数采用可选的第二个参数,用于指定对象的精度数字。来自ruby-doc:new(initial,digits)Thenumberofsignificantdigits,asaFixnum.Ifomittedor0,thenumberofsignificantdigitsisdeterminedfromtheinitialvalue.但是,在使用String时,此行为与描述不符。BigDecimal.new('1.2345',4).to_s('F')#1.2345BigDecimal.new('1.2345',1).to_s('F')#1.2345如何在使用Str

ruby-on-rails - Rails 3. 为什么我的十进制值行是诸如#<BigDecimal :5003750 ,'0.1E2' , 9(18)>> 之类的值?

为什么我的十进制值行是诸如#>之类的值,而不是普通的十进制数?我有一个成本列,但我得到了奇怪的值。那样可以么?如果是,为什么? 最佳答案 默认情况下,这就是Ruby打印BigDecimal对象的方式。不知道他们为什么选择这么丑陋的格式,但是嘿-也许一些额外的信息会有用。无论如何,您应该仍然可以按预期使用它们-只是显示有点奇怪。如果您想以更正常的格式打印BigDecimal,请先对其调用to_s,或使用puts,它会为您调用to_s。希望对您有所帮助! 关于ruby-on-rails-Ra

ruby - 比较 RSpec 中包含 BigDecimal 的哈希值

我正在使用RSpec(3.x)来测试一个类似于计算器的对象。该对象将结果放入散列中。但是我无法在我的测试中正确匹配散列。这是我正在谈论的示例:classObjectUnderTestdefcalculate(a,b)value=a.to_d/b{value:value{endend测试看起来像这样:RSpec.describeObjectUnderTestdoit"calculatestheproductoftwovalues"doo=ObjectUnderTest.newexpect(o.calculate(1,3)).toeql({value:0.333})endend问题在于0.

35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值

文章目录一、Math类(1)简介(2)属性(3)方法①ceil和floor②Knowledgeispower③sqrt④sin、cos、角度转弧度(4)Math.random()和Random类①生成[0,99]范围的整数②生成[10,99]范围的整数③生成四位大写字母随机字符串二、UUID三、格式化字符串或数字(1)格式化字符串(2)格式化数字(DecimalFormat)(3)字符串转数字(4)数字转字符串四、高精度计算(1)计算机中浮点数都是近似值(2)BigDecimal一、Math类(1)简介✏️java.lang.Math类提供了常见的数学计算功能✏️Math类被final修饰(不

35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值

文章目录一、Math类(1)简介(2)属性(3)方法①ceil和floor②Knowledgeispower③sqrt④sin、cos、角度转弧度(4)Math.random()和Random类①生成[0,99]范围的整数②生成[10,99]范围的整数③生成四位大写字母随机字符串二、UUID三、格式化字符串或数字(1)格式化字符串(2)格式化数字(DecimalFormat)(3)字符串转数字(4)数字转字符串四、高精度计算(1)计算机中浮点数都是近似值(2)BigDecimal一、Math类(1)简介✏️java.lang.Math类提供了常见的数学计算功能✏️Math类被final修饰(不

java - 如何解决 Java Rounding Double 问题

这个问题在这里已经有了答案:RetainprecisionwithdoubleinJava(24个回答)关闭4年前。似乎减法触发了某种问题,结果值是错误的。doubletempCommission=targetPremium.doubleValue()*rate.doubleValue()/100d;78.75=787.5*10.0/100ddoublenetToCompany=targetPremium.doubleValue()-tempCommission;708.75=787.5-78.75doubledCommission=request.getPremium().doubl

java - 如何解决 Java Rounding Double 问题

这个问题在这里已经有了答案:RetainprecisionwithdoubleinJava(24个回答)关闭4年前。似乎减法触发了某种问题,结果值是错误的。doubletempCommission=targetPremium.doubleValue()*rate.doubleValue()/100d;78.75=787.5*10.0/100ddoublenetToCompany=targetPremium.doubleValue()-tempCommission;708.75=787.5-78.75doubledCommission=request.getPremium().doubl

Java BigDecimal 可能的溢出错误

我在一些涉及BigDecimal的代码上测试边界条件,我注意到当BigDecimal用字符串"1e2147483647"初始化时>它的行为出乎意料。它似乎在0和1e-2147483647之间有一个值。当我尝试调用intValue()时,我得到一个NegativeArraySizeException。我应该注意2147483647是我系统上整数的最大值。我做错了什么,还是BigDecimal有问题?BigDecimaltest=newBigDecimal("1e2147483647");test.compareTo(newBigDecimal(0));//Returns1test.com

Java BigDecimal 可能的溢出错误

我在一些涉及BigDecimal的代码上测试边界条件,我注意到当BigDecimal用字符串"1e2147483647"初始化时>它的行为出乎意料。它似乎在0和1e-2147483647之间有一个值。当我尝试调用intValue()时,我得到一个NegativeArraySizeException。我应该注意2147483647是我系统上整数的最大值。我做错了什么,还是BigDecimal有问题?BigDecimaltest=newBigDecimal("1e2147483647");test.compareTo(newBigDecimal(0));//Returns1test.com

java - BigDecimal - 使用 new 或 valueOf

我遇到了两种从双d中获取BigDecimal对象的方法。newBigDecimal(d)BigDecimal.valueOf(d)哪种方法更好?valueOf会创建一个新对象吗?一般情况下(不仅仅是BigDecimal),推荐什么-new或valueOf? 最佳答案 这是两个独立的问题:“我应该为BigDecimal使用什么?”和“我一般会做什么?”对于BigDecimal:这有点棘手,因为它们不做同样的事情。BigDecimal.valueOf(double)将使用canonicalStringrepresentation传入的d