标签: bigdecimal

Java中BigDecimal的平方根

我们是否可以BigDecimal仅使用Java API而不是定制的100行算法来计算Java中的平方根?

java bigdecimal square-root

55
推荐指数
6
解决办法
4万
查看次数

BigDecimal,精度和规模

我在我的应用程序中使用BigDecimal作为我的数字,例如,使用JPA.我对"精确度"和"规模"这两个术语进行了一些研究,但我不明白它们究竟是什么.

任何人都能解释一下BigDecimal值的'precision'和'scale'的含义吗?

@Column(precision = 11, scale = 2)
Run Code Online (Sandbox Code Playgroud)

谢谢!

java precision jpa scale bigdecimal

55
推荐指数
3
解决办法
5万
查看次数

如何在Java中将BigDecimal乘以整数

如何在Java中将BigDecimal乘以整数?我试过这个,但不正确.

import java.math.BigDecimal;
import java.math.MathContext;

public class Payment {
    int itemCost;
    int totalCost = 0;

    public BigDecimal calculateCost(int itemQuantity,BigDecimal itemPrice){
        itemCost = itemPrice.multiply(itemQuantity);
        totalCost = totalCost + itemCost;
    return totalCost;
   }
Run Code Online (Sandbox Code Playgroud)

java bigdecimal

53
推荐指数
1
解决办法
11万
查看次数

将Java Number转换为BigDecimal:最好的方法

我正在寻找将数字转换为BigDecimal的最佳方法.

这够好吗?

Number number;
BigDecimal big = new BigDecimal(number.toString());
Run Code Online (Sandbox Code Playgroud)

我们可以用这种toString()方法失去精确度吗?

java precision numbers bigdecimal

52
推荐指数
2
解决办法
9万
查看次数

在Java中从BigDecimal中删除尾随零

我需要删除尾随零BigDecimal沿RoundingMode.HALF_UP.例如,

Value        Output

15.3456  <=> 15.35
15.999   <=> 16            //No trailing zeros.
15.99    <=> 15.99
15.0051  <=> 15.01
15.0001  <=> 15           //No trailing zeros.
15.000000<=> 15           //No trailing zeros.
15.00    <=> 15           //No trailing zeros.
Run Code Online (Sandbox Code Playgroud)

stripTrailingZeros() 有效,但它会在类似的情况下返回科学记数,

new BigDecimal("600.0").setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它返回6E+2.我需要在JSF中的自定义转换器中使用它,这对最终用户来说可能很难看.那么,这样做的正确方法是什么?

java bigdecimal

52
推荐指数
4
解决办法
4万
查看次数

Java:为什么我们应该在现实世界中使用BigDecimal而不是Double?

在处理现实世界的货币价值时,我建议使用BigDecimal而不是Double.But我没有一个令人信服的解释,除了"通常是这样做".

你能否对这个问题嗤之以鼻?

java floating-point double bigdecimal

51
推荐指数
3
解决办法
6万
查看次数

为什么BigDecimal("5.50")不等于BigDecimal("5.5")以及如何解决这个问题?

实际上,我找到了可能的解决方案

//returns true
new BigDecimal("5.50").doubleValue() == new BigDecimal("5.5").doubleValue()
Run Code Online (Sandbox Code Playgroud)

当然,它可以通过类似的Math.abs (v1 - v2) < EPS方式进行改进,使比较更加健壮,但问题是这种技术是否可以接受或是否有更好的解决方案?

如果有人知道为什么java设计师决定以这种方式实现BigDecimal的平等,那么阅读它会很有趣.

java equals bigdecimal

49
推荐指数
3
解决办法
3万
查看次数

使用react-vite时出现504(过时的优化部门)

我在 Vite 上使用 React 和 JavaScript 时安装了一个名为bigdecimal js的包。编译时,它在控制台上显示以下错误,并且应用程序未加载:

在此输入图像描述

我的package.json

{
  "name": "settleup",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@emotion/react": "^11.10.6",
    "@emotion/styled": "^11.10.6",
    "@mui/material": "^5.11.14",
    "dayjs": "^1.11.7",
    "firebase": "^9.18.0",
    "js-big-decimal": "^1.4.1",
    "numeral": "^2.0.6",
    "react": "^18.2.0",
    "react-datepicker": "^4.11.0",
    "react-dom": "^18.2.0",
    "react-hook-form": "^7.43.8",
    "react-icons": "^4.8.0",
    "react-router-dom": "^5.3.4",
    "uuid": "^9.0.0"
  },
  "devDependencies": {
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.11",
    "@vitejs/plugin-react": "^3.1.0",
    "vite": "^4.2.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

和 Vite 配置:

import …
Run Code Online (Sandbox Code Playgroud)

javascript bigdecimal reactjs vite

49
推荐指数
4
解决办法
7万
查看次数

使用java.math.MathContext

最近我尝试了解java.math.MathContext的使用但未能正确理解.它用于舍入java.math.BigDecimal.如果是,为什么不围绕十进制数字,甚至是尾数部分.

从API文档中,我发现它遵循规范ANSI X3.274-1996ANSI X3.274-1996/AM 1-2000规范中指定的标准,但我没有让它们在线阅读.

如果您对此有任何想法,请告诉我.

java math bigdecimal mathcontext

48
推荐指数
5
解决办法
7万
查看次数

检查BigDecimal是否为整数值

任何人都可以推荐一种有效的方法来确定a是否BigDecimal是数学意义上的整数值?

目前我有以下代码:

private boolean isIntegerValue(BigDecimal bd) {
    boolean ret;

    try {
        bd.toBigIntegerExact();
        ret = true;
    } catch (ArithmeticException ex) {
        ret = false;
    }

    return ret;
}
Run Code Online (Sandbox Code Playgroud)

...但是如果有必要,我希望避免对象创建开销.以前我正在使用bd.longValueExact()哪个会避免创建一个对象,如果BigDecimal它在内部使用它的紧凑表示,但显然会失败如果值太大而不适合长.

任何帮助赞赏.

java bigdecimal

46
推荐指数
5
解决办法
3万
查看次数