首页 > 编程知识 正文

java保留两位小数的函数,java显示小数点后两位

时间:2023-05-03 10:11:51 阅读:108220 作者:3638

保存java小数点后2位的有效数字

今天,偶尔使用UI布局时,需要显示BigDecimal格式。 显示格式保留小数点后1位。 可悲的是,搜索的结果很相似。 基本上是五种方法。 现在,国内好像发生了奇怪的现象。 有人写广播,别人遇到类似问题后,几乎都是转载或直接复制发表在自己的文章里。 几乎没有任何加工或严重的东西,也说不出自己这样做的理由。 啊,我忘了。 可能有一个理由。 那就是,很多招聘jd上写的,有博客的人会加分。 我想问一下,像这样简单的转载和复制如果不加上自己的验证和思考,会有好处吗? 如果我是面试官的话,我很有可能直接通过。 为什么? 太懒惰了,不管是手懒惰还是思考懒惰都会对自己的职业产生不良影响。

我自己的想法

你可能会用自己的想法晒我的毛,说确实没什么用,但自己后悔回想的时候可能会长毛了。 很多虾、大侠、大神都说不做轮子,不重复做轮子,用经过验证的直接拿来现成的。 理论上没有错,但有一件事是错的。 那就是,他们已经明白了车轮的原理,不再是很多人只是使用的那种简单的事情,而且已经能快点车轮了。 记住别人的经历一定不适合你,不要老是找相似的地方,那样越来越觉得自己像大神,找不同的地方,那样就会像自己,最终成为大神。

结束胡说,进入正题

引入在检索结果中保持两位小数的五种方法

以下是互联网上常见的五种方法。 这里贴上验证的完整代码,以便其他同学可以验证

公共类测试Java {

publicstaticvoidmain (字符串[ ] args ) {

bigdecimal bigdecimal=new bigdecimal (' 100.000 );

bigdecimal bigdecimal2=new bigdecimal (' 0.0810 );

方法1 (bigdecimal;

方法1 (bigdecimal 2;

system.out.print ln------------------------ -;

方法2 (bigdecimal;

方法2 (bigdecimal 2;

system.out.print ln------------------------ -;

方法3 (bigdecimal;

方法3 (bigdecimal 2;

system.out.print ln------------------------ -;

方法4 (bigdecimal;

方法4 (bigdecimal 2;

system.out.print ln------------------------ -;

方法5 (bigdecimal;

方法5 (bigdecimal 2;

}

//*

方法1

* @param f

*/

publicstaticvoidmethod1(bigdecimal f ) {

//bigdecimalBG=newbigdecimal(f;

doubleF1=f.setscale(2,BigDecimal.ROUND_HALF_UP ).doubleValue );

system.out.println (mehtod1result is : ) F1 );

}

//*

方法2

* @param f

*/

publicstaticvoidmethod2(bigdecimal f ) {

decimal format df=new decimal format (' #.00 ';

system.out.println (' mehtod2result is : ' df.format ) );

}

//*

方法3

* @param f

*/

publicstaticvoidmethod3(bigdecimal f ) {

system.out.println (mehtod3result is : ) string.format ),f );

}

//*

*方法4

* @param f

*/

publicstaticvoidmethod4(bigdecimal f ) {

numberformatnf=number format.getnumber instance (;

nf.setmaximumfractiondigits(2);

system.out.println (' mehtod4result is : ' nf.format ) );

}

//*

*方法5

* @param f

*/

publicstaticvoidmethod5(bigdecimal f ) {

浮动值=f .浮动值(;

floatnum=(float ) ) math.round ) floatvalue*100 )/100 );

system.out.println (' mehtod5result is : ' num );

}

}

验证结果

mehtod1 result is:100.0

mehtod1 result is:0.08

-------------请参阅

mehtod2 result is:100.00

mehtod2 result is:08

-------------请参阅

mehtod3 result is:100.00

mehtod3 result is:0.08

-------------请参阅

mehtod4 result is:100

mehtod4 result is:0.08

-------------请参阅

mehtod5 result is:100.0

mehtod5 result is:0.0

知道什么了吗? 只要将代码粘贴到IDE中进行验证,就可以得到上述结论。 这里有BigDecimal,与所有数字类型兼容。

得到的结论

目前,只有第三种方法便于使用字符串处理,但效率不是最高的。 有更好的答案吗? 一定有。 请来弄坏。 自己找到的话会补充。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。