社区
C# 帖子详情 double加d还是不加d zy850919 2010-05-17 01:32:16 默认情况下,赋值运算符右侧的实数被视为 double。但是,如果希望整数被视为 double,请使用后缀 d 或 D,例如:
int x = 9;
double y = 4.4;
var result = x * y;
Console.WriteLine("结果是 {0}", result);
Type type = result.GetType();
Console.WriteLine("结果的类型是: {0}", type.ToString());
int x = 9;
double y = 4.4d;
var result = x * y;
Console.WriteLine("结果是 {0}", result);
Type type = result.GetType();
Console.WriteLine("结果的类型是: {0}", type.ToString());
两段代码输出的一样,那么我就想问,double后面加d还有什么作用呢?
...全文
708 16 打赏 收藏 double加d还是不加d 默认情况下,赋值运算符右侧的实数被视为 double。但是,如果希望整数被视为 double,请使用后缀 d 或 D,例如: int x = 9; double y = 4.4; var result = x * y; Console.WriteLine("结果是 {0}", result); Type type = result.GetType(); Console.WriteLine("结果的类型是: {0}", type.ToString()); int x = 9; double y = 复制链接
扫一扫 分享 转发到动态 举报 AI 作业
写回复 配置赞助广告取 消
确 定
用AI写文章 16 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 加油馒头 2010-05-17 打赏举报 回复 [Quote=引用 7 楼 zy850919 的回复:]
引用 5 楼 vrhero 的回复:
把 int x = 9; 改成 double x = 9; 就会看到编译错误了...你把那句话的意思理解错了...
我改了:
C# code
double x = 9;
double y = 4.4;
var result = x * y;
……
[/Quote]
类型自动转换 zy850919 2010-05-17 打赏举报 回复 结贴,给分。谢谢vrhero。 whoami333 2010-05-17 打赏举报 回复 好威风的螃蟹。 vrhero 2010-05-17 打赏举报 回复 对...如果不加d后缀,将其作为整型数计算则会舍去小数部分...
double x=9/5;//x=1.0 zy850919 2010-05-17 打赏举报 回复 呵呵,那个写错了
var x = 9 / 5;
Console.WriteLine(x);
Console.WriteLine(x.GetType());
var t = 9d / 5;
Console.WriteLine(t);
Console.WriteLine(t.GetType());
zy850919 2010-05-17 打赏举报 回复 [Quote=引用 8 楼 vrhero 的回复:]
不好意思,我也记错了...不会出错,因为整型数可以隐式转换为双精度浮点数...
应该是这样...
var x = 9 / 5;//x=1,将其作为整数计算
var x = 9d /5;//x=1.8,将其作为双精度浮点数计算
[/Quote]
正解!
我这样是不是更易懂?
var x = 9 / 5;
Console.WriteLine(x,x.GetType());
Console.WriteLine(x.GetType());
var t = 9d / 5;
Console.WriteLine(t);
Console.WriteLine(t.GetType());
hztltgg 2010-05-17 打赏举报 回复 是字面值的类型区别
9 和 9D
在程序里一个是整数表示 00001001 ,一个是 浮点数表示,生成的指令不同吧 wangwenzhuang 2010-05-17 打赏举报 回复 貌似没有什么区别 vrhero 2010-05-17 打赏举报 回复 不好意思,我也记错了...不会出错,因为整型数可以隐式转换为双精度浮点数...
应该是这样...
var x = 9 / 5;//x=1,将其作为整数计算
var x = 9d /5;//x=1.8,将其作为双精度浮点数计算 zy850919 2010-05-17 打赏举报 回复 [Quote=引用 5 楼 vrhero 的回复:]
把 int x = 9; 改成 double x = 9; 就会看到编译错误了...你把那句话的意思理解错了...
[/Quote]
我改了:
double x = 9;
double y = 4.4;
var result = x * y;
Console.WriteLine("结果是 {0}", result);
Type type = result.GetType();
Console.WriteLine("结果的类型是: {0}", type.ToString());
结果和以前的相同,这就是我不解的地方。 zy850919 2010-05-17 打赏举报 回复 [Quote=引用 3 楼 vrhero 的回复:]
C#中带小数的数字默认即为double类型,不必加d后缀...只有要将不带小数的整型数字作为double类型时才需要加d后缀...
[/Quote]
double y = 4d 和double y = 4,貌似在编译器看来是一样的。。。。。 vrhero 2010-05-17 打赏举报 回复 把 int x = 9; 改成 double x = 9; 就会看到编译错误了...你把那句话的意思理解错了... Justin-Liu 2010-05-17 打赏举报 回复 你用整数就看出效果了 vrhero 2010-05-17 打赏举报 回复 C#中带小数的数字默认即为double类型,不必加d后缀...只有要将不带小数的整型数字作为double类型时才需要加d后缀... zy850919 2010-05-17 打赏举报 回复 [Quote=引用 1 楼 starfd 的回复:]
作用就是声明这个数字是double类型,类似的还有f(float)之类的
[/Quote]
那不加的效果也是一样的啊 娃都会打酱油了 2010-05-17 打赏举报 回复 作用就是声明这个数字是double类型,类似的还有f(float)之类的 声明double变量的时候,加d与不加d有什么区别 privatedoublemoneycon=0.0d; privatedoublemoneycon2=0.0; 以上命名变量方式,一个加d,一个不加d,都能通过编译,这两个方法有什么区别, 反正两种方式,书上都有写,就是没有写区别 没有区别,默认就是private double moneycon = 0.0d;
private double moneycon2 = 0.0;
以上命名变量方式, java的Long为啥要加L,Float要加F,而Double不需要加D? 1.整数型和浮点型
java中
整数型有 byte,short,int和long 四种
浮点型有 float,double
2.java接收数字类型的方式
java中默认整数型用int接收,而浮点型用double接收。
3.当数字类型用比它小的数字类型接收时,需要强转,反之不需要
所以,当定义byte,short时,不需要在后面加上b,s,而定义long时,需要加上L,加L的目的就是为了让heap中也创建一块long类型所需要的内存,用来来放数值。区分int和long类型
同理,double不需要 double和Double的区别 double是基本数据类型,Double是原始数据类型
double没有方法,Double有自己的属性和方法
double只创建引用,Double创建对象
集合类不能存放double,只能存放Double
double存放在栈中,Double存放在堆中
栈的存取速度要高于堆,另外栈中的数据可以共享
如:
double a = 0;
double b = 0;
不会创建对象,只会建 Java中float、double、long类型变量赋值添加f、d、L尾缀问题 本文介绍了Java中float、double、long赋值需要添加尾缀的原因,并且说明了什么情况下不需要尾缀,但是建议最好都添加尾缀,防止报错和程序可读性。 java double类型-加减乘除高精度运算 double类型-加减乘除高精度运算
// 进行加法运算
private double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(
C#
111,111
社区成员
642,554
社区内容
发帖 与我相关 我的任务 C# .NET技术 C# 复制链接
扫一扫 分享 确定 社区描述 .NET技术 C# 社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章