java输出3位小数_Java编程运算中如何使数精确到小数点后三...

这篇博客探讨了在Java中如何进行精确到小数点后三位的数值计算和输出,包括使用BigDecimal进行高精度计算,以及DecimalFormat格式化输出。通过示例代码展示了如何避免浮点数精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

f3251709980d1dbbaf117a3362df96ae.png

2016-09-01 00:36黄盛润 客户经理

import java.util.S沪花高拘薨饺胳邪供矛canner;

public class A{

//下面的方法是对单个数求阶乘,并返回

public static int jieCheng(int n){

int sum=1;

for(int i=1;i<=n;i++){

sum*=i;

}

return sum;

}

//下面是对所有数求阶乘,再全部相加,并返回

public static int add(int n){

int sum=0;

for(int i=1;i<=n;i++){

sum+=jieCheng(i); //调用上面的方法,对单个求阶乘,再全部相加

}

return sum;

}

public static void main(String[] args){

Scanner input=new Scanner(System.in);

System.out.println("请输入数字:");

int n=input.nextInt();

System.out.println("运算得到:"+add(n));

}

}

//总结:此题有个特点,n等于要相加的数字的总数,也等于要求阶乘的最大数

5784bafeca1661b49b93f7091f6fb5cb.png

2016-09-01 00:33黄盛沛 客户经理

个人认为:(新手回答,老鸟勿喷,仅供参考)

java的核心就是面向对象编程,从这一点来说更倾向于用bean存放数据;

让bean对象对应一张数据库表,存入数据的时候用set方法,存入数据更清晰、方便,并且可以在不同java文件中反复使用这一对象

在项目中时,编袱罚递核郛姑店太锭咖码时会进行分层,其中会设置domain包,把所以的bean对象统一放到这个包里,能够便于统一管理,出现数据问题查找方便

使用SSH框架时,会有数据注入,action实现模型驱动后,相应类的数据会被自动注入到该类的对象中

4773cb5a2a6ce6ef54c27a15837ea525.png

2016-09-01 00:30樊振清 客户经理

你用double类型的话不可能精确到小数点后100位的。要用BigDecimal.

public class GoldNumber {

public static void main(String[] args) {

System.out.println(GoldNumber.getGoldNumber(100));

System.out.println(GoldNumber.getGoldNumber(5));

}

//获得第N位的小数

public static String getGoldNumber(int n){

BigDecimal a = new BigDecimal(0.618);

BigDecimal b = new BigDecimal("1");

氦籂份饺莓祭逢熄抚陇

for (int i = 1; i < n+1; i++) {

a = b.divide(a.add(b), n, BigDecimal.ROUND_HALF_UP);

}

return a.toString();

}

}

e47ca4bf3461be5fbac5ea532d411990.png

2016-09-01 00:27齐晓娣 客户经理

监听埂担囤杆塬访剁诗筏涧小数点按钮按下事件,判断内容框只是否有小数点存在,有的话就直接false掉。。判断是否存在用JAVA的子串匹配方法,

负数按钮直接输出 “-”就行了。

c663367b4a68ad9f0f974ca0df4499b4.png

2016-09-01 00:21齐晓娟 客户经理

import java.math.BigDecimal;import java.util.Scanner;public class BigDecimalDemo {public static void main(String[] args) {System.out.println("说明:输入分数转小数,比如1/5,精确到小数点后10位");while(true){changNum();}}static void changNum(){System.out.println("请输入分数");Scanner sc = new Scanner(System.in);String str = sc.nextLine().trim();String[] ary = str.split("/");BigDecimal b1 = new BigDecimal(ary[0]);BigDecimal b2 = new BigDecimal(ary[1]);BigDecimal b3 = b1.divide(b2,10, BigDecimal.ROUND_HALF_袱乏递何郛蛊店坍锭开UP);System.out.println("转换成小数:"+b3);}}输出

说明:输入分数转小数,比如1/5,精确到小数点后10位请输入分数1/3转换成小数:0.3333333333请输入分数1/8转换成小数:0.1250000000

963460cf63348dfa60efb7385056655c.png

2016-09-01 00:18龚子飞 客户经理

java中提供了很多方法可以设置浮点数的精确度,我介绍两种方法:DecimalFormat和BigDecimal.

假设你的数为Double value = 1.2365456321;

如果用DecimalFormat,则

DecimalFormat decimalFormat = new DecimalFormat(".000");

value = Double.parseDouble(decimalFormat.format(value));

如果用BigDecimal,则

BigDecimal bigDecimal = new BigDecimal窢姬促肯讵厩存询担墨(value);

value = bigDecimal.setScale(3).doubleValue();

如果对数据要求的比较精确的话,推荐用BigDecimal,因为它被开发出来就是为了满足数据精确性的要求。

5f594eb5a19599a5d85772c050ca8d39.png

2016-09-01 00:15齐晓彦 客户经理

自己做除法运算!公式是:分子除分母。想精确计算就别用double,用java.math.BigDecimal,专门处理计算的。

热心网友

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值