`
yaasshole
  • 浏览: 664408 次
文章分类
社区版块
存档分类
最新评论

数据类型转换:1人民币+1美元=?

 
阅读更多

数据类型转换是我们从小学就开始学习的内容,只不过在小学我们称为单位换算。比如一条狗加一匹马等于是多少呢?总不是两条狗或两匹马吧。我们需要把单位转为都可以计算的单位,比如动物。结果就是两只动物。这样的转换,我们称为数据类型转换。

C#中数据类型转换又分为隐式转换和显式转换。隐式转换是默认的转换,而显式转换就是必须明确说明的转换。

比如¥1+$1的问题,在国际贸易结算中,默认将人民币转换为美元,那计算的结果是¥1+$1=$1.14。但如果在国内贸易结算,就需要明确说明用什么货币基准来转换,如果转为人民币的话就是¥1+$1=8

这两个案例都很明确的说明,在数值的计算过程中,需要单位统一,在软件的开发过程中叫做数据类型一致。

C#中对数值类型的数据转换规定

数据容量小的类型转换为数据类型大的类型,是隐式转换,其变量中存储的数据值不会受到任何影响和变化。

数据容量大的类型转换为数据类型小的类型,是显式转换,如果远数据中存储的实际值大于目标类型能存储的值范围,则会发生值受损。显式转换又叫强制类型转换。

Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->staticvoidMain(string[]args)
{
inti=int.MaxValue;
longl=i;//隐式转换目标类型=源类型值
i=(int)l;//显式转换目标类型=(源类型)源类型值
System.Console.WriteLine(i);
l
=long.MaxValue;
i
=(int)l;
System.Console.WriteLine(i);
}

上述代码首先将int的最大值保存在int类型的i中,又将i的值赋值给了long类型的l。由于long类型能存储的范围远远大于int,因此存放在long类型中的值不会受损。

又将l存储的值赋值为i,虽然这个时候l中保存的具体值不超过int的范围,但long类型比int类型大(你可以想象long的盒子比int的盒子大,大盒子哪怕放了一个小东西,但大盒子所占据的空间还是比小盒子大),所以要求显式转换。不过由于具体存的值够int存储,所以值没有受到影响。

最后一次,我们把long类型的最大值赋值为l,又把l赋值为iint显然没有足够的空间存储赋予的值,这个时候i中的值是多少呢?-1

为什么是-1?我们来看以下的经典转换

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->byteb=200;
b
=(byte)(b+100);
System.Console.WriteLine(b);

第二行中100是字面量所以的整数的字面量默认是int类型。byte类型容量小于int类型,应此byteint的类型转换是将byte显式转换为int,然后两个int类型之和为int,将相加后的值赋值给byte类型的b,就必须要强制类型转换。

得到的结果是44byte类型的最大值是255,并且从0开始存储。(b+100)超过byte最大值45。结果是44就说明当给予的值超过了当前类型能存储的范围,则C#默认从0重新开始存放值。

b赋值写成以下格式,不需要显示的声明类型转换,因为+=是赋值运算符。

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->byteb=200;
b
+=100;
System.Console.WriteLine(b);

分享到:
评论

相关推荐

    测量程序编制 - python 09数据类型:Number(数字)-进制.pptx

    十进制012345678910111213141516二进制0110111001011101111000100110101011110011011110111110000八进制01234567101112131415161720十六进制0123456789ABCDEF10进制转换成十进制的例子:二进制:1001 = 1×23?...

    Python语言基础:数据类型转换.pptx

    有时候需要对数据内置的类型进行转换,在进行数据类型的转换时只需要将数据类型作为函数名即可,在Python中内置了一些数据类型转换的函数: 1. int()函数 int() 函数用于将一个字符串或数字转换为整型。 语法:int(x...

    T+转换U8+工具V2.0

    PS:转换过程中,如果其他问题请自行处理。考虑清楚后在使用。 1、版本范围:T+12.0以上版本;...2,修复问题:当T+数据有多个年度,并且第一年的起始月份大于一月时,导致的转换后U8现金流量数据缺失的问题

    babel-plugin-transform-flow-to-gen:Flow + Babel + TestCheck == JavaScript中的QuickCheck

    流向发电将Flow注释转换为TestCheck生成器以进行随机测试动机阅读演示? 正在安装yarn add babel - plugin - transform - flow - to - gen 并将其添加到您的.babelrc { " presets " : [ " es-2015 " ], " plugins " ...

    1.06μm激光激发时ZnWO4:Tm3+的上转换发光和SRS

    1.06μm激光激发时ZnWO4:Tm3+的上转换发光和SRS,臧竞存,郑锴,该方法采用丘克拉斯基法生长出ZnWO4:Tm3+单晶,根据吸收光谱和荧光光谱,计算了ZnWO4晶体中Tm3+离子的扎德-奥弗尔特参数:Ω2 =5.368×10-

    02 数据类型的转换.html

    数据类型:基本类型:数字number、字符串:string、布尔:boolean、null、undefined 引用类型:数组:array、对象:object、函数:function 转成数字对象:强类型、显示转换:强制转换成数字类型。Number() ...

    大小写金额转换-源码

    {判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱} case qianwei of -3:qianwei1:=‘厘‘; -2:qianwei1:=‘分‘; -1:qianwei1:=‘角‘; 0 :qianwei1:=‘元‘; 1 :qianwei1:=‘拾‘; 2 :qianwei1:=...

    微机计算机原理课后习题答案王忠民版

    (1)128.8125+10110101.1011B+1F.2H = ( 101010101.101 ) B (2)287.68-10101010.11B+8E.EH =( 103.CE ) H (3) 18.9+1010.1101B+12.6H-1011.1001B = ( 36.525 ) D 7. 写出下列以补码表示的二进制数的真值: 1...

    进制转换1.2

    进制转换1.2是进制转换1.1的升级版本,可在二进制、十进制、十六进制之间互转。 1.2版相对于1.1版更新 1、优化二进制格式化显示。 2、增加十六进制格式化显示。 3、去掉多余的无用功能,精简优化代码,使编译后的...

    java数据类型的转换简单数据类型之间的转换 (2). 字符串与其它数据类型的转换 (3). 其它实用数据类型转换

    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...

    小写金额转换成大写金额

    for j:=length(m) downto 1 do k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+ d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2]; xTOd:=k; end; 调用: procedure TForm1.Button1Click(Sender: T...

    各种形式的编码解码工具

    收集整理了各种通过JAVASCRIPT编码解码工具 支持转换的有 \uXXXX \UXXXXXXXX &#DDDD; &#xXXXX; \xXX \OOO ...\U00006D4B\U00008BD5\U...5rWL6K+VQ1NETg==?= MIME + Quoted-printable =?UTF-8?Q?=E6=B5=8B=E8=AF=95CSDN?=

    RGB转换HSV matlab实现

    % 1: max=max(R,G,B) % 2: min=min(R,G,B) % 3: if R = max, H = (G-B)/(max-min) % 4: if G = max, H = 2 + (B-R)/(max-min) % 5: if B = max, H = 4 + (R-G)/(max-min) % 6: % 7: H = H * 60 % 8: if H , H...

    项目源码:基于Hadoop+Spark招聘推荐可视化系统 大数据项目 计算机毕业设计

    Spark作为数据处理引擎,提供高性能的批处理和实时计算能力,对招聘数据进行清洗、转换和特征提取等操作。 招聘推荐:系统利用Spark的机器学习库(如MLlib)构建候选模型,通过对求职者的个人资料、工作经历、技能...

    编译原理(蒋立源)部分习题答案

    、(1)L(G6)={0,1,2,......,9}+ (2)最左推导: N=&gt;ND=&gt;NDD=&gt;NDDD=&gt;DDDD=&gt;0DDD=&gt;01DD=&gt;012D=&gt;0127 N=&gt;ND=&gt;DD=&gt;3D=&gt;34 N=&gt;ND=&gt;NDD=&gt;DDD=&gt;5DD=&gt;56D=&gt;568 最右推导: N=&gt;ND =&gt;N7=&gt;ND7=&gt;N27=&gt;ND27=&gt;N127=&gt;D127=&gt;0127...

    34,36进制到10进制源码

    for I := 1 to mLength - Length(Result) do Result := '0' + Result; end; { IntToDigit } function DigitToInt(mDigit: string; mScale: Byte): Integer; //返回进制表示转换成整数 ;mScale 指定多少进制 var I...

    smcpp:SMC ++从全基因组序列数据推断种群历史

    使用vcf2smc将您的VCF转换为SMC ++输入格式: $ smc++ vcf2smc my.data.vcf.gz out/chr1.smc.gz chr1 Pop1:S1,S2此命令将解析样本S1和S2的重叠群chr1数据,样本S1和S2是总体Pop1成员。 您应该为数据集中的每个独立...

    TIA博途S7通用函数库LGF(包含数据类型转换+数据处理等)+使用说明(英文).rar

    TIA博途S7通用函数库LGF(包含数据类型转换+数据处理等)+使用说明(英文)

    JavaScript类型转换方法及需要注意的问题小结(挺全面)

    一、类型转换的方法和应该注意的问题:1.转换为布尔型:(1)用两次非运算(!):!!5 ==&gt; true(2)用布尔型的构造函数:new Boolean(5) == &gt; true值转换为布尔类型为false:0,+0,-0,NaN,””(空字符串),undefined,...

    VC数据类型转换详解VC数据类型转换详解

    VC数据类型转换详解 VC数据类型转换详解

Global site tag (gtag.js) - Google Analytics