使用Java BigDecimal表示15精度的数字(比例为2)
我找到了部分答案,但我已经知道了。所以我决定发布一个新问题
我正在尝试将HTTP请求参数字符串转换为15精度的Java BigDecimal数字(比例为2)。比如说,
String x = request.getParameter("seqNo"); /* e.g. 12345678910111213141516.17181920 whatever */
// I want to convert x so that it has a precision of 15 and scale of 2 i.e. 111213141516.17.
我不在乎四舍五入。这是一种参考数,与四舍五入无关。我知道可以通过使用重载的setScale(int)
方法来设置缩放,该方法将返回一个缩放的(截断的?)大十进制。但如何确保正确设置精度
# 1 楼答案
改用子字符串怎么样?无论如何,这不是一个真正的数字
如果你真的疯了,想把它当作数字来处理(四舍五入中的冲突和差异迟早会让你抓狂的!),你可以这样做
但是这是一个非常非常的坏主意。不要在数字列中挤进而不是数字的内容。下周,你会得到两个点的数字,它会以各种可能的方式打破
如果您不需要进行数学计算,将此类字段视为
VARCHAR
或TEXT
是完全可以接受的。因为这就是它:一系列的字符。不是数字事实上,我强烈建议将整数存储为
VARCHAR
。它是一个唯一标识符,而不是用于计算的数学数字