在我的一个PostgreSQL表中,有一个数据类型为Numeric(20,10)的属性result。其输入值之一可以是+/-无穷大。我想知道长度(20,10)的最大值和最小值是什么。
jgovgodb1#
对于数值numeric(precision, scale),极限值为:
numeric(precision, scale)
+- ((10^precision)-1)/(10^scale)
所以numeric(20,10)就是((10^20)-1)/(10^10)或者9999999999.9999999999手册中的详细信息。
numeric(20,10)
((10^20)-1)/(10^10)
9999999999.9999999999
j8ag8udp2#
对于长小数,您可能会在JavaScript等语言中遇到精度错误。所以你可以做这样的事情。
const calcluateDecimalMax = (x: number, y: number): string => { const leftCount = x - y const rightCount = y const leftString = "9".repeat(leftCount) const rightString = "9".repeat(rightCount) return `${leftString}.${rightString}` } console.log(calcluateDecimalMax(25, 9)) // "9999999999999999.999999999"
2条答案
按热度按时间jgovgodb1#
对于数值
numeric(precision, scale)
,极限值为:所以
numeric(20,10)
就是((10^20)-1)/(10^10)
或者9999999999.9999999999
手册中的详细信息。
j8ag8udp2#
对于长小数,您可能会在JavaScript等语言中遇到精度错误。所以你可以做这样的事情。