当前位置: 首页 > 面试题库 >

如何在java中将整数转换为bigdecimal

安坚诚
2023-03-14
问题内容

我想创建一种计算整数和大十进制乘法的方法。我在Google和论坛上搜索没有找到任何内容。

import java.math.BigDecimal;
private Integer quantite;
private BigDecimal prixUnit;

public Integer getQuantite() {
        return quantite;
    }

    public void setQuantite(Integer quantite) {
        this.quantite = quantite;
    }


    public BigDecimal getPrixUnit() {
        return prixUnit;
    }

    public void setPrixUnit(BigDecimal prixUnit) {
        this.prixUnit = prixUnit;
    }

public BigDecimal methCal(BigDecimal quantite, BigDecimal prixUnit){

        this.prixUnit=prixUnit;
        BigDecimal j = new BigDecimal(quantite);
        this.j = quantite;

        return quantite*prixUnit ;
}

有人能帮我吗?


问题答案:

要将整数(或字节/短/浮点数/双精度数)与BigInteger(或BigDecimal)相乘,必须先将本机数字转换为BigInteger /
BigDecimal。

// int parameter can be int or Integer
public static BigInteger multiply ( int a, BigInteger b ) {
   return BigInteger.valueOf( a ).multiply( b );
}

// BigInteger <> BigDecimal
public static BigDecimal multiply ( int a, BigDecimal b ) {
   return BigDecimal.valueOf( a ).multiply( b );
}

// same for add, subtract, divide, mod etc.

注意:valueOf是不一样的new,而且在不同的原因的BigDecimal和BigInteger的。在这两种情况下,我建议valueOfnew

我看到您添加了代码,很好。它不起作用,因为Integer与BigDecimal混合使用,*也不适用于BigDecimal。如果将其与我的代码进行比较,则修复应该很明显:

public BigDecimal methCal ( int quantite, BigDecimal prixUnit ) {
    return BigDecimal.valueOf( quantite ).multiply( prixUnit );
}


 类似资料:
  • 问题内容: 我有两个整数和。我需要计算,作为结果,我想浮动。例如,作为结果,我希望得到1.5。我认为,最简单的(或唯一的)的方式来做到这一点是转换和成float类型。不幸的是,我找不到简单的方法。你能帮我吗? 问题答案: 你只需要 投 操作数为浮点的至少一个: 要么 或(不必要)

  • 问题内容: 我知道Java不允许无符号类型,所以我想知道它如何将整数转换为字节。假设我有一个值为255的整数a,并且将该整数转换为一个字节。该值表示在字节11111111中吗?换句话说,该值是否更多地视为带符号的8位整数,还是仅直接复制该整数的后8位? 问题答案: 这称为缩小原始转换。根据规格: 将有符号整数缩小为整数类型 T会 简单地丢弃除 n个 最低阶位以外的所有位,其中 n 是用于表示类型

  • 问题内容: 在Java中,我想将双精度型转换为整数,我知道您是否这样做: 您得到y = 1。如果您这样做: 您可能会得到2。但是,我想知道:由于整数的双精度表示有时看起来像1.9999999998之类,所以通过Math.round()创建的双精度转换是否仍会导致截断的向下数字,而不是比我们要查找的舍入数(即:1而不是所示代码中的2)? (是的,我的确这样表示:x 是否有 任何 值,其中y将显示x的

  • 我有一些带有小端编码字节的文件,我想取字节,指定endianess并使用python(任何版本)将它们转换为十进制数。如何正确执行?

  • 问题内容: 系统:Windows Vista 32位,Java 6.0.2 我有一些关于将char转换为int的问题。我运行下面的代码,将myInt的值保留为4: 现在,这种转换是Java自动完成的吗?是从ascii“ 4”减去ascii值“ 0”,然后在幕后强制转换为int吗?这让我感到困惑,因为当我尝试进行反向操作时,实际上必须将结果转换为char: 如第一个示例所示,是因为Java自动将(a

  • 问题内容: 概述Java程序如何将诸如“ 1,2,3,4,5”之类的字符串转换为数组({1,2,3,4,5}) 问题答案: 从zvzdhk: 然后,解析您的整数: