我在应用程序中使用BigDecimal 作为我的数字,例如,使用 JPA。我对术语“精度”和“规模”进行了一些研究,但我不明白它们到底是什么。
有人能解释一下BigDecimal值的“精度”和“刻度”的含义吗?
@Column(precision = 11, scale = 2)
谢谢!
引用Javadoc:
精度是未缩放值中的位数。
和
如果为零或为正,则标度为小数点右侧的位数。如果为负,则该数字的未标度值乘以10的标度否定的幂。例如,-3的标度表示未标度值乘以1000。
>
精度:有效位数总数
小数位数:小数点右侧的位数
有关详细信息,请参见BigDecimal
类文档。
精度:
精度是未缩放值中的位数。例如,对于数字123.45,返回的精度为5。
因此,精度表示任意精度整数的长度。以下是一些相同刻度但精度不同的数字示例:
在数字等于零(即0.000)的特殊情况下,精度始终为1。
规模:
如果为零或为正,则标度为小数点右侧的位数。如果为负,则该数字的未标度值乘以10的标度否定的幂。例如,-3的标度表示未标度值乘以1000。
以下是一些相同精度、不同尺度的例子:
BigDecimal.toString:
BigDecimal
的toString
方法的行为根据小数位数和
>而有所不同。(感谢@RudyVelthuis指出这一点。)
规模==0
,整数只是按原样打印出来。规模
更多示例:
< li>19/100 = 0.19 //整数=19,小数位数=2,精度=2 < li>1/1000 = 0.0001 //整数=1,小数位数= 4,精度= 1
当我试图从Spark dataframe收集数据时,我得到一个错误,说明 下面是StackTrace: 警告tasksetmanager:在stage 0.0中丢失任务1.0(TID 1,10..***,executor 0):java.lang.IllegalArgumentException:requirement:Decimal precision 39在scala.predef超过最大精度
本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下 示例 浮动 float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。 大致范围:-3.4×10 38至3.4×10 38 十进制精度:6-9个有效数字 记
我正在做两个大的十进制数的减法。在减法中,它们都具有非零精度,但结果的精度为0。 据我所知,精度为0的大十进制数是不可能的。即使0的精度也为1。 精度是未标度值中的位数。例如,对于数字123.45,返回的精度为5。 (另请参阅BigDecimal、精度和比例)。 问题区域: 返回从此行创建的bigDecimal 对于上下文<代码>中心。实数=-0.79,这是一个双精度。 所以它是有效的 倒标度仅为
问题内容: 如何确定整数位数和Java中类似数字的小数点后位数。 问题答案: 双精度并不总是精确的表示形式。您只能说如果将其转换为字符串,将有多少个小数位。 这仅适用于未转换为指数符号的数字。您可能会认为1.0小数点后一位或无位。
基于此阵列: 我想在Java中打印双精度值和ascii值。我在互联网上找不到合适的解决方案。我刚刚发现如何将单个字符转换为整数值。但是很多字符呢?主要问题是,我有一个大char[]和一些双精度和int值存储在.对于双精度值,它们存储在4字节大小和整数1或2字节内,所以我必须阅读所有这些并转换为双精度或整数。 谢谢你帮忙
问题内容: 我正在尝试将双精度分隔为整数和小数部分 因此,例如,数字24.4应该分为24和4。 使用此方法可为我提供以下值: 我需要十进制的值为4。 如何解决这个问题? 问题答案: 你可以做一个String 。然后Integer 取回两个整数分量。