使用了new BigDecimal(double)构造函数
时间: 2023-12-03 18:05:32 浏览: 26
好的,您的问题是关于使用了 `new BigDecimal(double)` 构造函数。这种构造函数会将一个 double 类型的数值转换为 BigDecimal 对象,但是由于 double 类型的精度有限,可能会导致 BigDecimal 对象的值与原始 double 值有微小的偏差。建议使用 `new BigDecimal(String)` 构造函数,将 double 类型的数值转换为字符串后再创建 BigDecimal 对象,可以避免这种精度问题。
相关问题
BigDecimal 如何构造0
在BigDecimal中构造0可以使用多种方法。其中一种方式是使用String构造函数,即使用new BigDecimal("0")。这将创建一个BigDecimal对象,其值为0,正如人们所期望的那样。这种方法是可靠的,因为它不依赖于double类型的不可预测性。
另一种方法是使用BigDecimal类的静态方法valueOf,即使用BigDecimal.valueOf(0)。这个方法将0作为double类型的参数传递,并返回一个精确表示该double值的BigDecimal对象。
需要注意的是,使用double类型的构造函数创建BigDecimal对象可能会导致不准确的结果。这是因为double类型不能精确地表示某些值,如0.1。例如,使用new BigDecimal(0.1)创建的BigDecimal对象实际上不等于0.1,而是一个近似值。因此,在构造BigDecimal对象时,建议优先使用String构造函数或valueOf方法来确保精确性。
引用:
API文档
BigDecimal类构造函数
BigDecimal类的precision字段<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [BigDecimal构造函数的问题](https://blog.csdn.net/u012580143/article/details/81560673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [BigDecimal构造器参数](https://blog.csdn.net/qq_51288495/article/details/130656978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
new BigDecimal和BigDecimal.valueOf
new BigDecimal() 和 BigDecimal.valueOf() 都是创建 BigDecimal 对象的方法,但它们之间有一些区别。
new BigDecimal() 是通过使用 BigDecimal 的构造函数来创建对象的。例如,可以使用 new BigDecimal("10.5") 来创建一个 BigDecimal 对象,该对象的值为 10.5。
BigDecimal.valueOf() 是一个静态方法,它返回一个 BigDecimal 对象,该对象包含传递给该方法的原始值。例如,可以使用 BigDecimal.valueOf(10.5) 来创建一个 BigDecimal 对象,该对象的值也为 10.5。
区别在于,new BigDecimal() 可以接受 String 类型的参数,而 BigDecimal.valueOf() 可以接受 int、long、float、double 或 String 类型的参数。另外,BigDecimal.valueOf() 有一个优化,如果参数是 int 或 long 类型的数值,它会返回一个预定义的对象,从而提高性能。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)