社区
Web 开发
帖子详情
java计算问题
pilishou
2009-06-23 09:35:11
我在写业务逻辑的时候发现一个问题
我在计算百分比的时候发现
int a=1;int b=3;
double c=0;
c=a/b;
结果发现c不是我想要的结果了,并不是0.3333333333.....................
结果是0.
然后我输出
这条
System.out.println(1/3);
结果也为0;
高手指点下,这个事Java的问题,还是.....
...全文
47
10
打赏
收藏
java计算问题
我在写业务逻辑的时候发现一个问题 我在计算百分比的时候发现 int a=1;int b=3; double c=0; c=a/b; 结果发现c不是我想要的结果了,并不是0.3333333333..................... 结果是0. 然后我输出 这条 System.out.println(1/3); 结果也为0; 高手指点下,这个事Java的问题,还是.....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuqinghehappy
2009-06-23
打赏
举报
回复
a和b都是int型的,int型/int型=int型
aijavalei
2009-06-23
打赏
举报
回复
刚调试了一下,按照你的代码,答案是0.0,呵呵··还是被强制转换了····
GoWish
2009-06-23
打赏
举报
回复
建议数学运算特别是除法要保留小数位的运算用Bigdecimal类型。
aijavalei
2009-06-23
打赏
举报
回复
同意6楼的说法,你在初始化C的时候已经赋值了0,C语言中是自己强制转化类型的,java中的算法也是遵循c语言的。但是针对字符串有所不同····
zuijiejina
2009-06-23
打赏
举报
回复
这个不是java的问题,是楼主自己没搞懂里面的原理。
a/b 连个int的数,结果也是int,在传给c之前就已经是0了。。。
kadach11
2009-06-23
打赏
举报
回复
[Quote=引用 3 楼 pilishou 的回复:]
我早试过咯,类型都是 double也是一样
double a,b,c;
我都郁闷了
[/Quote]
LZ别一概而论。就算没写测试代码,一看就知道结果会如何。何况我都亲测过。
tuke0001
2009-06-23
打赏
举报
回复
变量a和b都是int型
a/b的结果当然也是int型,int型是不带小数的,所以0.33333333直接舍去小数得到0
c由于是double型,所以a/b得到int的0后再被强制转换到double型得0.0
JAVA中的直接整数默认是int,应该这样写double型的:
System.out.println(1D/3D);
pilishou
2009-06-23
打赏
举报
回复
我早试过咯,类型都是 double也是一样
double a,b,c;
我都郁闷了
pilishou
2009-06-23
打赏
举报
回复
我测试了下,1/2输出结果都是为0,如果结果有带小数就会出现0结果,不管怎么简单的计算。整数就是好的
kadach11
2009-06-23
打赏
举报
回复
这涉及到类型转换问题。
正确写法是
double a=1;double b=3;
double c=0;
c=a/b;
System.out.println(c);
或者你强制转换你的INT。能得到你想要的效果!
Java
计算
时间差、日期差总结
Java
计算
时间差、日期差总结 最近工作中遇到需要
计算
时间差,搜索了几种
计算
时间差的方法,这里总结一下 1、
java
7中的日历类Calendar Calendar类使用其静态的getInstance()方法获取一个日历实例,该实例为当前的时间;如果想改变时间,可以通过其setTime方法传入一个Date对象,即可获得Date对象所表示时间的Calendar对象 /** *使用Cal...
Java
计算
时间差
Java
计算
时间差 import
java
.text.DateFormat; import
java
.text.SimpleDateFormat; import
java
.util.Date; public class DateFormatDemo { public static void main(String[] args) { //设置时间格式,为了 能转换成 字符串 DateFormat df = new SimpleDateFormat("yyyy-MM
java
计算
时间差_
Java
中
计算
两个日期的时间差
这篇文章将使用两个例子
计算
两个日期的时间差。1.使用
Java
SDK。2.使用Joda库。1.使用
Java
SDK
计算
两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后
计算
两个微秒时间差。时间的兑换规则如下:1s秒 = 1000ms毫秒 1min分种 = 60s秒 1hours小时 = 60min分钟 1day天 = 24hours小时packagecom.qiyadeng....
localdate简单使用
java
计算
时间差 localDateTime
计算
时间差
Java
计算
时间差 jdk LocalDateTime localdate LocalDateTime简单操作
localdate简单使用
java
计算
时间差 localDateTime
计算
时间差
Java
计算
时间差 jdk LocalDateTime localdate LocalDateTime简单操作localdate简单使用
java
计算
时间差 localDateTime
计算
时间差
Java
计算
时间差 jdk LocalDateTime localdate LocalDateTime简单操作localdate简单使用
java
计算
时间差 localDateTime
计算
时间差
Java
计算
时间差 jdk
java
计算
小数_
java
基础之小数
计算
项目中会经常用到小数位的
计算
。很多人第一感觉会想尝试使用float或者double,然而在精准
计算
,例如金钱
计算
中,使用float或者double来
计算
会出现意想不到后果。如图所示:并没有得到预期的0.05。出现原因分析:
Java
在
计算
浮点数的时候,由于二进制无法精确表示0.1的值(就好比十进制无法精确表示1/3一样)。解决方案:2种1.先用整数加减乘除,再除以小数位。2.使用BigDecimal...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章