可以在没有科学记数法的情况下格式化Double吗?

cam*_*oqp 2 java string double hibernate-search

我知道有关同一问题的各种帖子.

挖掘它有点不同,它可能有点明显,但我需要你的意见.

我目前正在使用Hibernate SearchLucene来索引实体属性.

我的实体上有一堆Double属性.

使用Lucene的默认桥接器(Bridge,即负责转换LongToStringStringToLong的桥接器)的这些实体在科学符号开始使用后给我带来麻烦.

我试图在DataTables上展示一个.xhtml信用卡和借记卡金额,它们的长度可以长达18位,其数据库(DB2)类型是BIGINT.

  1. 例如,我无法将DataBase类型更改为Long.
  2. 我不能将我的实体的Double类型属性更改为例如Long

那么问题是什么? 是否有一种方法从字符串说"1234567890"来检索格式为1234567890而不是1.23456789E9的Double,因为它默认情况下正在执行Double.parseDouble(FormattedString)

PD:我知道DecimalFormat的存在,但考虑到使用这个formater会给我一个正确格式化的字符串说:"#######.E0"但我真正需要的是具有这种格式的Double,但是在做的时候Double.parseDouble(FormattedString)我会放松这种格式.

希望我很清楚,谢谢你的帮助.

aio*_*obe 6

是否有一种方法从字符串说"1234567890"来检索一个双重值,其值为1234567890而不是1.23456789E9,因为它默认情况下正在执行Double.parseDouble(FormattedString)

你的问题没有意义.1234567890与1.23456789E9的值相同,double表示其中之一,当且仅当它也代表另一个时.

我知道DecimalFormat的存在,但考虑到使用这个格式化器将给我一个正确格式化的字符串说:"#######.E0"但我真正需要的是具有这种格式的Double,但是当做Double.parseDouble(FormatedString)我会松散这样的格式.

不,没有办法构建一个Double以某种方式显示它.该toString对方法Double是它是什么,它不能改变.

你唯一能做的就是使用DecimalFormat或者String.format正如你所指出的那样,你总会得到一个String.