首页
学习
活动
专区
圈层
工具
发布

小数java
EN

Stack Overflow用户
提问于 2013-03-10 06:01:51
回答 3查看 1.2K关注 0票数 1

我试图在java中将两个数字相除-更具体地说,我有小数800/9177,并希望将其转换为双精度、浮点数或w/e。我的问题是,当我试图获得小数的值时,我得到的结果是0。

有人知道怎么做吗?

我的代码:

代码语言:javascript
复制
double dt = 800/9177;
float ft = 800/9177;
double dw = 800/122;
System.out.println("dt : " + dt + " ft: " + ft + " dw " + dw + " 800/9177 " + (800/9177));

它输出dt: 0 ft: 0 dw : 6.0 800/9177 0,所以除了dw之外的所有分数都是0。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-10 06:04:03

最简单的是

代码语言:javascript
复制
double dt = 800.0/9177;

代码语言:javascript
复制
double dt = (double) 800 / 9177;
票数 3
EN

Stack Overflow用户

发布于 2013-03-10 06:04:20

使用数据类型int将导致int丢失数据。从一开始就像这样使用doublefloat数据类型

代码语言:javascript
复制
double dt = 800/9177.0;
float ft = 800/9177.0f;
double dw = 800/122.0;

可以像这样指定一个双精度数r

代码语言:javascript
复制
double d = (double) 123;
double d = 123.0; //default floating point type is double. use f for float 
double d = 123d;
票数 0
EN

Stack Overflow用户

发布于 2013-03-10 06:04:33

代码语言:javascript
复制
double dt = 800D / 9177;

如果你除以两个整数,你会得到一个整数除法。要得到双除法,其中一个操作数必须是双精度数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15316407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档