java - 设置 BigDecimal 的特定精度

标签 java bigdecimal floating-point-precision

我有一个 XSD这需要我将 BigDecimal 用于纬度/经度。我目前将 lat/lon 作为 double ,并将它们转换为 BigDecimal,但我只需要使用大约 12 个精度位。我一直无法弄清楚如何设置它。谁能帮我解决这个问题?

最佳答案

您可以使用 setScale()例如

double d = ...
BigDecimal db = new BigDecimal(d).setScale(12, BigDecimal.ROUND_HALF_UP);

关于java - 设置 BigDecimal 的特定精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482889/

相关文章:

java - Java 中的某些 BigDecimal 数在除法时会导致抛出 ArithmeticException

floating-point - IEEE 24 位 float 的最小正值是多少?

c++ - 为什么 g++(4.6 和 4.7)将这个除法的结果提升为 double ?我能阻止吗?

java - 关闭之前的 Activity (Java 中的部分 Activity 除外)

java - Liquibase 变更集 changeLogPropertyDefined - 多个属性

java - Glassfish v3 突然阻塞并耗尽最大线程数

ruby-on-rails - 使用 Ruby on Rails 从数据库中的 yaml 序列化字段取回大小数

从 Oracle 数据库获取 float 时出现 Java 精度问题 - 无法正确舍入

binary - 浮点精度是可变的还是不变的?

java - 在没有评估的情况下创建 Weka 分类器模型