decimal.compareTo
时间: 2023-09-24 18:12:34 浏览: 116
compare.c
引用\[1\]:为什么decimal中不能使用equal进行值比较,而是使用compareTo? 引用\[2\]:运行结果 运行结果不出所料,BigDecimal的equals方法当精度不一样的时候也当做不相等,而compareTo方法却可以忽略精度的不同,只比较数值是否相同。 引用\[3\]:前两天测试发现一个Bug,告诉我说他明明只修改了订单详情中商品的数量,为什么提示说订单中商品单价不能修改(后台限制了特殊单子的单价不能修改),但是他明明没有修改商品的单价,这就很奇怪了。我看了下入参,修改接口传的该商品的单价为price=222,数据库中该商品的单价为222.000000。该字段为BigDecimal类型,除了精度不一样,值是相等的,而后台校验相等用的是equals。而网上查资料BigDecimal用的比较多的是compareTo方法。
问题:decimal.compareTo方法的作用是什么?
回答: decimal.compareTo方法是用来比较两个BigDecimal对象的大小。与equals方法不同,compareTo方法可以忽略精度的不同,只比较数值是否相同。\[2\]在实际应用中,比较BigDecimal对象的大小时,通常会使用compareTo方法而不是equals方法,因为equals方法在精度不一样的情况下会当做不相等。\[3\]
#### 引用[.reference_title]
- *1* [decimal相关知识](https://blog.csdn.net/qq_39130650/article/details/122228187)[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^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [BigDecimal比较建议用compareTo](https://blog.csdn.net/wanghao112956/article/details/99942982)[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^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文