如何去掉小数点和小数点后的数字

Posted

技术标签:

【中文标题】如何去掉小数点和小数点后的数字【英文标题】:How to remove a decimal point and numbers after the decimal point 【发布时间】:2015-03-11 13:27:34 【问题描述】:

我有一些销售数据的以下格式的具体细节。

销售文件中将通过以下代码的数量有一个小数点,后面有两个数字。我想去掉小数点和后面的数字,比如1.00变成1。

@Override
public void setFormatSpecificDetails(Sales salesRecord) 
    salesRecord.setHostStoreNumber("1");
    salesRecord.setRetailValue(salesRecord.getNetRetailValue());
    salesRecord.setDiscountValue(0);
    salesRecord.setTransactionType("SR");
    salesRecord.setQuantity(salesRecord.getQuantity());

【问题讨论】:

您没有向我们展示销售对象,也没有向我们展示包含 setFormatSpecificDetails 的类。使用目前随机、无上下文的源 sn-p,无法回答您的问题。 我假设您需要格式化一个数字。因此,请查看docs.oracle.com/javase/8/docs/api/java/text/NumberFormat.html。有一节特别关于删除小数点分隔符及其后面的数字(setDecimalSeparatorAlwaysShown 甚至setParseIntegerOnly)。 这段代码与问题无关!您可以尝试将其转换为 ai int,但如果没有更多细节,很难说出您想要实现的目标 【参考方案1】:
Just Typecast the value to int or long. its very simple
                    long l =(long) salesRecord.getNetRetailValue();
                    System.out.println(l);
the code yours will be like this

      @Override
    public void setFormatSpecificDetails(Sales salesRecord) 
        salesRecord.setHostStoreNumber("1");
        salesRecord.setRetailValue(salesRecord.getNetRetailValue());
        salesRecord.setDiscountValue(0);
        salesRecord.setTransactionType("SR");
        salesRecord.setQuantity((long)salesRecord.getQuantity());

【讨论】:

thrinod 的评论不起作用,需要更改的是 Quantity 而不是 RetailValue。 但是在我更新结果之前你没有给出正确的解释验证@StephenButlerWorrall【参考方案2】:

你可以使用 java.math.BigDecimal:

new BigDecimal("1.00").setScale(0)

【讨论】:

以上是关于如何去掉小数点和小数点后的数字的主要内容,如果未能解决你的问题,请参考以下文章

怎么去掉单元格里数值小数点后的所有0呢?

小数末尾的零能去掉吗?为啥?

EXCEL中整列数字,如何不显示小数点后的0?

EXCEL中小数点后面的0怎么去掉

EXCEL中小数点后面的0怎么去掉?比如2.000 我想把后面的0去掉,表格中几百个统一去掉

oracle FM去掉了小数点后的0,怎么去掉小数点?