我如何存储非理性的BigDecimal

时间:2019-03-16 00:18:30

标签: java

如何存储pi或7 ^(1/2)这样的大无理数?最好应该能够存储大量数字(1000+),但不是必需的。

1 个答案:

答案 0 :(得分:2)

您不能存储一个无理数,因为它无穷无尽。除此之外,您可以将BigDecimal存储为数字,但数量有限,但数字数量有限,作为纯String值。要设置数字的精度,可以使用BigDecimal.setScale()。这需要数字和一个RoundingMode

这里是一个例子:

select * from public.vw_dependent_objects  where source_table='name_of_MV';

我建议使用BigDecimal.toPlainString()而不是BigDecimal.toString()

从文档中

  

BigDecimal irrational = ... BigDecimal result = irrational.setScale(1000, RoundingMode.HALF_UP); FileUtils.writeStringToFile(new File("test.txt"), result.toPlainString()); 返回此BigDecimal的字符串表示形式,不包含指数字段。

     

toPlainString()如果需要指数,则使用科学计数法返回此BigDecimal的字符串表示形式。

从文件中创建一个新的toString(),您只需将String值传递给构造函数即可:

BigDecimal

您还可以使用此方法将号码存储在数据库中或任何需要的位置。只需将其存储为字符串值即可。