java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三相关的知识,希望对你有一定的参考价值。

这两个数 可能为Int类型 可能为double类型,结果要是string类型的

public static void main(String[] args)
System.out.println(test(2, 0.7)); //参数为int和double 结果=2.86
System.out.println(test(11111111111113L, 4.5)); // 参数为long和double 结果=2,469,135,802,469.56
System.out.println(test("234567", "3.14159")); // 参数为字符串 结果=74,665.06


private static String test(Object a, Object b) // 参数类型任意(只要是number),返回总是字符串
// 下面这一行里的2,表示保留小数点后多少位(四舍五入),如果两位就是2,如果小数点前三,就改成3.
BigDecimal result = new BigDecimal(String.valueOf(a)).divide(new BigDecimal(String.valueOf(b)), 2, BigDecimal.ROUND_HALF_UP);
return new DecimalFormat("###,###.###").format(Double.valueOf(result.toString())).toString();
追问

谢谢了

参考技术A public static String test(double d1,double d2)
DecimalFormat df = new DecimalFormat("#,###.##");
return df.format(d1/d2);

参考技术B 用BigDecimal 参考技术C 独上高楼望吴越。白云映水摇空城,

sql查询用到两个字段相除,如何让他保留小数两位

如果希望只保留2位小数,可以使用decimal数据类型。例如: decimal(15,2)
当然,也可以在select时将money类型转换成decimal,使其只显示两位小数。假设你的字段名叫做工资,数据类型是money, 可以用cast语句将其转换成两位小数的decimal,
cast(工资, decimal(12,2))
参考技术A 下面的语句即可:
select
*
from
<你没说表名哦>
where
c<>round(c)
原理就是判断这个字段是否和四舍五入以后的结果相同,不同就有小数。你的数据库系统如果说round为未知函数,那你可以查一下相应的手册,看看是不是int等。
参考技术B select convert(decimal(10,2),column1/column2) from table_1 参考技术C select cast((28/1.17) as decimal(18,2)) as aaa from table1 参考技术D 是什么数据库啊?
sql server可以直接用select convert(decimal(10,2),字段1/字段2) from table,
如果是oracle的话就更好了,select round(字段1/字段2, 2) from table.

以上是关于java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三的主要内容,如果未能解决你的问题,请参考以下文章

sql查询用到两个字段相除,如何让他保留小数两位

java 两个整数相除 结果为一位小数

java bigdecimal 四舍五入

java怎么让两个数相除的商保留25位小数

要四舍五入保留一位小数,JAVA如何实现

java中小数怎么四舍五入?