double转int

double s = 5.0;

int s1 = (int)s;

这个是可以的。
为什么下面这个不可以呢?
Double a=java.lang.Math.random()*20;
int b=(int)a;
在这里就会提示double不能转为int,为什么呢?

0

1个回答

前者是double到int的转换,都是基本类型,后者是包装类型Double转换成基本类型int,当然就不行了啊,如果把后面的Double改成double,那肯定就行了。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
double 转int
请问下这么把double转换int而不丢失精度
int转换为double
int i1,i2;rndouble d = (double)(i1/i2);//好像不行?
double转int问题
一、代码实现 package com.test.test; public class TTTT { public static void main(String[] args) { double d =1.76; System.out.println((int)d); double f =1.16; System.out.println((int)f); } ...
double强转int
高手告诉下在细节上是怎么实现的
Java字符串转double、int
参考:参考文章 String a=”2.33”; double value = Double.valueOf(a);
double 转 int
问题的陈述稍有点长请耐心看完。rnrn把double类型转为int类型时,很多时候要作“舍入“,C++11中有个lrint()函数定义如下:rnrnlong int lrint (double x);rnlong int lrint (float x);rnlong int lrint (long double x);rnrnRound and cast to long integerrnRounds x to an integral value, using the rounding direction specified by fegetround, and returns it as a value of type long int.rnrnhttp://www.cplusplus.com/reference/cmath/lrint/rnrn大家可能和我一样最先想到的是,“四舍五入”,但完全不是。rnrn在http://cpp.sh/,我写了段代码测试lrint()的结果,rnrn[code=c]#include rn#include rn#include rn#include rnint main()rnrn for (int i = -10; i < 10; ++i)rn rn double x = i + 0.5;rn rn printf("lrint(%+f)=%ld\n", x, lrint(x));rn rn return 0;rnrn[/code]rnrn运行结果:rnrnlrint(-9.500000)=-10rnlrint(-8.500000)=-8rnlrint(-7.500000)=-8rnlrint(-6.500000)=-6rnlrint(-5.500000)=-6rnlrint(-4.500000)=-4rnlrint(-3.500000)=-4rnlrint(-2.500000)=-2rnlrint(-1.500000)=-2rnlrint(-0.500000)=0rnlrint(+0.500000)=0rnlrint(+1.500000)=2rnlrint(+2.500000)=2rnlrint(+3.500000)=4rnlrint(+4.500000)=4rnlrint(+5.500000)=6rnlrint(+6.500000)=6rnlrint(+7.500000)=8rnlrint(+8.500000)=8rnlrint(+9.500000)=10rnrn这根本不是我所理解的”四舍五入“。查阅WiKi,https://en.wikipedia.org/wiki/Rounding#Round-to-even_method.rnrnC++11遵循IEEE 754 标准的这种算法,经查这种舍入算法叫:四舍六入五成双。http://baike.baidu.com/view/1245064.htmrnrnmsvs2013中已引入了lrint() 函数,当需要大量使用lrint()函数时,我可以毫不夸的说它会把你的程序托慢6-8倍,比如解码音频文件或音频重采样时。rnrn如何提高程序性能,只能重写,rn四舍五入我常用的宏:#define lrint_n(f) (f>=0?(int32_t)(f+(double)0.5):(int32_t)(f-(double)0.4)) rnrn问题来了:“四舍六入五成双” 的宏该怎么写,转换时要不要考虑int最大、最小范围?请大神指教。rnrnrnrnrnrnrnrnrn
字符串转int和Double
package test; public class JavaTest { public static void main(String[] args){ int myInt = Integer.parseInt("12"); System.out.println(myInt); Double myDouble = Double.parseDouble("12.23");
double转int四舍五入
Integer.parseInt(new java.text.DecimalFormat("0").format(x));
double 转 int 怎么转?
比如 一个 double 的值是 23.2212412rn要转成 int类型 保留4位 23.22 然后去除小数点 最后 int 就等于 2322rnrn如何转呢,茫然了!
double转int时的误差
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
double如何转int型?
新手rn问个门槛外的问题rndouble如何转int型??rnrndouble d = 12.20005rnint arna = ??rn
关于 double 转 int 的困惑
如下代码:rnrn#include rnrnusing namespace std;rnrnint main()rnrn double d = 5.09;rn double e;rn int64_t i;rnrn e = d * 100;rn i = (int64_t)(d*100);rnrn cout << "e: " << e << endl;rn cout << "i: " << i << endl;rnrn return 0;rnrnrnrn编译执行后的结果是:rnrne: 509rni: 508rnrn请教:为什么会这样呢?
double转int精度丢失
double x;rnint y;rnx=0.03;rny=(int)(x*100);rny成2了,我想要的是3啊,这是怎么回事,应该怎么搞法?
Java类型转换: int转double
标题Java类型转换: int转double 由于double的范围比int数据类型大,所以当int值被赋给double时,java会自动将int值转换为double。 隐式转换:由于double数据类型的范围和内存大小都比int大,因此从int到double的转换是隐式的。并不需要像double to int转换那样进行类型转换; 使用Double.valueOf()方法 /** * Ja...
double转unsigned int的困惑!
.....rndouble i=2.3;rnunsigned int j=i;rnunsigned int k=(i-j)*100.0;rn........rn为什么输出出k=29,而不是k=30;???要得30该怎么办??
求int转double的算法
求int转double的算法
在C++中如何将int bool double转化为string和将string 转化为int bool double
在C++中如何将int bool double转化为string和将string 转化为int bool double
double与int的隐藏类型转问题
#include rnusing namespace std;rnrnvoid main()rnrn double v1,v2,v3;rn int v4;rn v1=112;rn v2=1.12;rn v3=v1/v2;rn v4=v3;rn cout<
int* 转double* 时的内存越界访问
今天一同事让我帮看一个程序, 最后定位到的问题是内存越界: int main() { int a = 0; *(double*)&a = 0; // 访问了非法内存, 运行时出错 return 0; } #include using namespace std; int main() { int a = -1; int b = -1; *(double*)&b = 0; //
保留几位小数&&double转int四舍五入
保留1位小数使用Math方法: (float) (Math.round(x * 10) / 10.0);   double转int四舍五入: Integer.parseInt(new java.text.DecimalFormat("0").format(x));
JAVA转byte[]为int,long,double
JAVA转byte[]为int,long,double
将string转化为int、double
Method 1:使用C的atoi()和atof()。先利用c_str()转成C string,再用atoi()与atof()。#include #include #include using namespace std; int main() {   string s = "123";   double n = atof(s.c_str());   //int n = atoi(s.c_
float double在内核转换为int
float double在kernel转换为int 目前大多数CPU都支持浮点运算单元,但是对于低端的嵌入式处理器可能就会去掉浮点协处理器。 在调试一个sensor就遇到这个问题,由于这个处理器是32位arm,比较低端,没有浮点运算,而在开发过程中又需要将float转为int,因此就需要软件模拟浮点运算来实现。 存储结构 存储方式是用科学计数法来存储数据的。 Tip 科学记数法 是一种以记下极大...
double转int精度丢失问题
在做学校的acm题时遇到这么一个问题,多余部分已省去,问题部分为: 输入正整数n,取2的n次方的最高位。 由M=2^n,两边取以10为底的对数,logM=nlog2=y 则pow(10,y的小数部分)即为所求。 于是有如下代码: #include #include #include using namespace std; int high(long long int
关于byte转double、int等类型
byte不能直接转double,int,要先转String,如: byte[] a=null; double index = Double.parseDouble(Bytes.toString(a));
double转化为int的内部实现如何?
如题。
内存地址中的int值 转double
我从内存地址中取的数据是int值:1162676634rn这1162676634实际在显示器上显示的是 3280.60rn我想将1162676634转换成double型,我就可以在textBox4.Text 中显示出3280.60
double转int时精度不一致问题
float和double类型的主要设计目的是为了科学计算和工程计算。它们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。float和double类型对于货币计算尤为不合适,因为要让一个float或者double精确地表示0.1(或者10的任何负数次方值)是不可能的,比如System.o...
gson 默认把int 转double解决办法
class MyMapTypeAdapterFactory() : TypeAdapterFactory { override fun &amp;lt;T : Any?&amp;gt; create(gson: Gson, typeToken: TypeToken&amp;lt;T&amp;gt;): TypeAdapter&amp;lt;T&amp;gt;? { val type = typeToken.getType...
解决Gson2.0默认Int转Double问题
Gson默认Int会转成Double,但是提供了hook覆写转换方法。具体如下: /** * 解决gson默认将int转换为double * * @return */ public static Gson getIntGson() { Gson gson = new GsonBuilder().
怎样把double 转换为int 类型?
怎样把double 转换为int 类型?
把double型转换为int型
double d1=100.00; Double D1=new Double(d1); int i1=D1.intValue(); 简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)...
奇怪的double转unsigned int,求助
double v=130.35;rnuint32 f=(uint32)(v*100000);rnrn结果f=13034999。为什么不是13035000呢?太奇怪了,请指教
怎么将double转换为int
CRect rect;rnGetClientRect(rect);rnint= 0.92*rect.bottom;rn我执行就出警告rnconversion from 'double' to 'int', possible loss of data
int、long转换为float、double的区别
位数: byte: 8 short: 16 int: 32 long: 64 --------- float: 32 double: 64 -------- char: 16 boolean:8 ======================================== 上图中, 6条实线为无数据丢失的转换 3条虚线为可能有精度损失的转换,如:
c语言中double转int的舍入误差
在C语言中,从double类型转换为int会出现舍入误差,从而导致结果错误,如下面的代码,判断n是否为“水仙花数”,当n=153时,在本机运行发生错误。调试得知,pow(remainder, i)在remainder = 5, i = 3时,得到temp为124(未加后面的0.5
关于string转int、float、double常用方法
需求:如上图为已经安装内存为8589934592Byte,字符串格式为string,需将其转换为GB显示给用户,格式依然为string; 问题: //前部代码省略,通过命令行获取到str,这里直接将结果赋值给str string str = "8589934592"; int n = atoi(str.c_str()); n=n/(1024*1024*1024); char p[100]...
java double类型保留位数、double转int
记录一下小知识 1.double保留小数点后一位 DecimalFormat df = new DecimalFormat("#.0"); df.format(0.99); 同理,保留小数点后两位 DecimalFormat df = new DecimalFormat("#.00"); df.format(0.99); 同理保留小数点后零位 DecimalFo
为什么int无法转换为Double????
规律:拆、装箱和升、降级两者可以在同一条语句中进行,但是一定要先拆箱或装箱再升级或者降级。。。 一条语句中,int无法转换为Double,因为这里涉及到先升级再装箱子,拆装箱一定要在升降级前面。。。。。 一条语句中,Integer无法转换为Double,因为这要先拆箱子再升级再装箱,涉及到3步操作,不符合上述规律。。。。。 可以自动拆箱再自动升级,但是不能自动升级再装箱?????
double转换为int的不同方法区别
Math.Round(double)作四舍五入,如果 a 在两个整数的中间,其中之一按定义是偶数,另一个是奇数,则返回偶数。 (int) 则作截取。 转载于:https://www.cnblogs.com/liubing/archive/2005/01/14/92061.html...