【发布时间】:2017-07-23 01:03:05
【问题描述】:
在 Oracle 数据库中,我将数字 0.5 存储在格式为 number(17, 2) 的列中。 我使用 Java 程序(使用 mybatis)读取它,并将其存储为实体对象的字符串字段。这个字符串字段的值是“.5”,而不是我期望的“0.5”。
我知道“.5”是浮点数的标准表示,在大多数编程语言中可以直接转换为数字 0.5。但是当它显示在网页上时,这不是我想要的。当然,只要检查第一个字母是否为“.”,我就可以随时转换为“0.5”,我认为这很简单而且容易忘记。
我还可以使用 Oracle 函数来指定将数字转换为字符串的格式。但是 TO_CHAR() 函数以格式模式作为参数使输出字符串为固定长度,或者不带格式参数将 0.5 打印为“.5”。这两种行为都不是我想要的。我只想要一种“原样”的方式来转换数字。但是 oracle 的“as it”方式并不是我想要的。
所以我想问一下:
处理这个问题的更好方法是什么?
【问题讨论】:
-
你用什么Java程序读过它?并将其存储为实体对象的字符串字段如何?为什么?它应该是
double或更可能是BigDecimal。 -
@EJP 是的,最后我们将它存储为 BigDecimal。还有,如何选择评论作为最佳答案?
标签: java oracle floating-point