如何存储pi或7 ^(1/2)这样的大无理数?最好应该能够存储大量数字(1000+),但不是必需的。
答案 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
您还可以使用此方法将号码存储在数据库中或任何需要的位置。只需将其存储为字符串值即可。