当前位置:首页
开发技术指南» 文章正文
    引言:

 ·谁有windows系统编程源代码    »显示摘要«
    摘要: 人民邮电出版社 作者:周金萍 徐丙立 姜小光 马小亮 邮箱zhiyong1822@yahoo.com.cn ......
 ·怎样把记录结果赋值成字符串    »显示摘要«
    摘要: 学生表 id name age ------------ 1 liuke 20 declare @str select * from 学生表 where id=1 要得到结果: @str=1,liuke,20 ......


困绕我很久的问题,关于常量后缀的作用

在.NET中,默认所有整型数都是32位int型,所有浮点数都是64位double型,因此将浮点常量赋值给float型变量时,必须在常量后添加F,比如   float   num   =   2.5F,否则会造成编译器错误。我要问的问题是:  
  1、上面所说的必须加后缀F,编译器是不是将double强制类型转换为低精度的float?如果编译器是做了强制类型转换的话,那下面这个语句为什么也会错呢?demical   num1   =   2.5,2.5是双精度型,把它赋值给128位的demical型,应该是隐式转换就可以实现的啊,为什么还需要:demical   num1   =   2.5D?  
  2、既然浮点型必须加后缀进行转换,整数型为什么不需要呢?比如   short   num2   =   25是不是也会错呢,按理说25是整型,赋值给short型有可能会造成精度丢失,也应该加个后缀名S,但查了很多书,好象整型常量不需要做这样的工作,也没有后缀名S,整型后缀只有U、L、UL,这是为什么呢?

NO.1   作者: Ivony

谁说double   ->   decimal是隐式类型转换?!  
   
  第一个问题,.NET的帮助中也写得非常的清楚:  
   
  只要常数表达式的值在目标类型的范围内,隐式常数表达式转换就允许将   int   类型的常数表达式转换为   sbyte、byte、short、ushort、uint   或   ulong。

NO.2   作者: duxinrun

double到decimal的转换不是一定都可以进行的,因为double是非精确类型,其值是一个近似值,而decimal是精确类型,所以不允许进行这种隐式转换


    摘要: rt,希望大家帮帮忙 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE