如何去掉小数点和小数点后的数字
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)
【讨论】:
以上是关于如何去掉小数点和小数点后的数字的主要内容,如果未能解决你的问题,请参考以下文章