java怎样解决除法精度_java 除法 精度问题
大家好,又见面了,我是你们的朋友全栈君。
int a=4;
int b=3;
float c = (float) a/b;
System.out.print(c);//输出:1
如果要的到精确的结果,要用下面的方法
int a=4;
int b=3;
float c = (float) a/(float) b;
System.out.print(c);//输出:1.3333334
import java.text.DecimalFormat;
public class toDouble {
public static void main(String[] args){
//增加三位小数0
DecimalFormat df = new DecimalFormat(“0.000”);
double d = 123;
System.out.println(df.format(d));
//保留4位小数
double d1 = 123.0123456;
String d2 = String.format(“%.4f”, d1);
System.out.println(d2);
int d3=5;
//float d4=d3/100;
String d4 = String.format(“%.3f”, (float)d3/100.00);
System.out.println(d4);
}
}
输出:
123.000
123.0123
0.050
Java除法保留3位小数的几种方法
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class format {
double f = 0.5585;
double f1 = 11.5585;
public void m1() {
//数字
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public void m2() {
//字符串
DecimalFormat df = new DecimalFormat(“0.000″);//对于大于1的用”#.000″,小于1的要用”0.000”
String t=df.format(f);
System.out.println(t);
DecimalFormat df1 = new DecimalFormat(“#.000”);
System.out.println(df1.format(f1));
}
/**
* String.format打印最简便
*/
public void m3() {
//字符串
String t =String.format(“%.3f”, f);
System.out.println(t);
}
public void m4() {
//字符串
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(3);
String t =nf.format(f);
System.out.println(t);
}
public static void main(String[] args) {
format f = new format();
f.m1();
f.m2();
f.m3();
f.m4();
}
}
结果:
0.558
0.558
11.558
0.559
0.558
Math.ceilMath.roundMath.floor
floor 向下取整 ceil 向上取整 round 则是4舍5入的计算,round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。 Math.floor(1.4)=1.0 Math.round(1.4)=1 Math.ceil(1.4)=2.0 Math.floor(1.5)=1.0 Math.round(1.5)=2 Math.ceil(1.5)=2.0 Math.floor(1.6)=1.0 Math.round(1.6)=2 Math.ceil(1.6)=2.0 Math.floor(-1.4)=-2.0 Math.round(-1.4)=-1 Math.ceil(-1.4)=-1.0 Math.floor(-1.5)=-2.0 Math.round(-1.5)=-1 Math.ceil(-1.5)=-1.0 Math.floor(-1.6)=-2.0 Math.round(-1.6)=-2 Math.ceil(-1.6)=-1.0
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135139.html原文链接:https://javaforall.cn
相关文章
- java 上传文件接口_Java接口实现文件上传
- Java实现约瑟夫环问题「建议收藏」
- java socket通讯乱码问题的解决
- Java中文乱码问题如何解决?
- java启动器_JAVA基础:Java 启动器如何查找类
- Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]
- java 唯一随机数_JAVA随机数
- java运行环境配置(jdk配置)Java博客 2 年前 桃李Taoli
- springmvc防止重复提交_java后端解决重复提交问题
- Java前后端分离跨域问题解决
- Java 脚本化编程指南详解编程语言
- java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决详解编程语言
- 更新LINUX下的Java版本(linux更新java)
- 时间解决Redis与Java的过期时间冲突问题(redisjava过期)
- 策略解决Java中Redis过期策略问题(redisjava过期)
- 数据处理解决Java程序中Redis过期数据的问题(redisjava过期)
- 解决Java程序MySQL驱动问题,下载MySQL JAR包.(mysql驱动jar包)
- 处理解决Redis中Java过期数据失效问题(redisjava过期)
- 时间解决Redis Java中过期时间的问题(redisjava过期)
- 时间设置解决Redis中Java设置的过期时间问题(redisjava过期)
- 时间解决Java中Redis过期时间的问题(redisjava过期)
- 数据失效解决Redis Java中数据过期失效问题(redisjava过期)
- 数据解决Redis中Java数据过期问题(redisjava过期)
- 让Java桥接Linux新世界的重要性(java链接linux)
- 如何在Linux中停止运行Java程序(linux停止java)
- 进程Linux下创建多个Java进程的简易方法(linux 多个java)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- 的应用Java在Oracle数据库中的重要性及应用(java在oracle里)
- java解决Eclipse挂掉问题的方法
- Java中典型的内存泄露问题和解决方法