将浮点数(介于0和1之间)转换为字符串

时间:2017-03-03 03:24:32

标签: java oracle floating-point

在Oracle数据库中,我将数字0.5存储在格式编号为(17,2)的列中。 我使用Java程序(使用mybatis)读取它,并将其存储为实体对象的字符串字段。这个字符串字段的值是“.5”,而不是我期望的“0.5”。

我知道“.5”是浮点数的标准表示,可以在大多数编程语言中直接转换为数字0.5。但是当它显示在网页上时,它不是我想要的。当然,我可以随时转换为“0.5”,只需检查第一个字母是否为“。”,我认为这是微不足道的,容易忘记。

我还可以使用Oracle函数指定将数字转换为字符串的格式。但是TO_CHAR()函数将格式模式作为参数使输出字符串为固定长度,或者不使用格式参数将0.5作为“.5”打印。这两种行为都不是我想要的。我只想要一种“按原样”转换数字的方式。但是oracle的“as as”方式并不是我想要的。

所以我想问:

处理此问题的更好方法是什么?

2 个答案:

答案 0 :(得分:0)

您不应该将数字的值与其表示混淆。

0.5.51/2, 2-1, 334/668, 0.12 and 0000000.50000000000 all 完全相同的值。

如果您希望以某种方式格式化该值,则需要在将值转换为字符串时指定。

答案 1 :(得分:0)

我不熟悉mybatis但是, 你不能只是将其作为double阅读,然后将其格式化,例如与十进制格式?

DecimalFormat df = new DecimalFormat("0.00"); df.format(number);