JS的数字类型目前支持的最大值为:9007199254740992,一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致。
JAVA的Long类型的最大值为:9223372036854775807,snowflake的算法在实现上确实没问题的,但实际运用的时候一定要避免这个潜在的深坑。
一、整数:
案列1:(19位)
案列2:(18位)
案例3:(17位)
案例3-2:(17位)
案例4:(16位)
二、带小数:
案例1:
案例2:
总结:
JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即 9007199254740992,JavaScript中Number最大的安全整数为16位。如果超出后还需使用可以考虑转换成String类型。