12.显试的类型转换和隐试的类型转换

显示的类型转换又称之为,强制类型转换

隐式的类型转换又称之为,自动类型转换

1.类型转换

要求等号两边参与的运算的操作数的类型必须一致.

如果不一致,满足下列条件,会发生自动类型转换.

例如: int 和 double 兼容(都是数字类型)

目标类型大于源类型.

语法实例:

  1. namespace _14.自动类型转换和强制类型转换
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. //自动类型转换
  8. int a = 1000;
  9. //此时的转换时自动的,首先它们是相兼容的类型,其次是小类型转换成大类型,所以会发生自动类型转换
  10. double d = a; //将int类型的a,转换成double类型的d.  
  11. Console.WriteLine(d); Console.ReadKey(); 
  12. }
  13. }
  14. }

在什么情况下会发生强制类型转换呢?

例如:double 和 int 兼容(都是数字类型)

目标类型小于源类型 .     注意:进行强制类型转换的时候,会发生精度丢失的问题.

语法实例:

  1. //强制类型转换
  2. double d2 = 1200.34;
  3. //此时的转换时强制性的,首先他们是相兼容的类型,其次是大类型转换成小类型,所以必须使用强制类型转换
  4. int a2 = (int)d2; //将double类型的d2转换成int类型的a2
  5. Console.WriteLine(a2);
  6. Console.ReadKey();

来自为知笔记(Wiz)

时间: 2024-10-07 06:46:56

12.显试的类型转换和隐试的类型转换的相关文章

也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强

在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题.比方一个看起来没有不论什么问题简单的条件:WHERE c = N'x' .假设 c 的数据类型是 varchar.而且表中包括大量的数据,这个查询可能导致极大的性能开销.由于这个操作会导致列 c 的数据类型转换为 nvarchar与常量值匹配,在 SQL Server 2008 及之后的版本号中,这样的操作做了增强,一定程度上减少了性能开销,參考SQL Server 2008 处理隐式数据类型转换在运行计划中

隐式类类型转换

<C++ Primer>中提到: “可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换.” 这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数只能有一个形参,而是它可以有多个形参,但那些形参都是有默认实参的. 那么,什么是“隐式转换”呢? 上面这句话也说了,是从 构造函数形参类型 到 该类类型 的一个编译器的自动转换. 下面通过代码来看一看: #include "stdafx.h" #include <string>

explicit:C++规定,当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换

explicit研究 explicit是C++中的关键字,不是C语言中的.英文直译是“明确的”.“显式的”意思.出现这个关键字的原因,是在C++中有这样规定的基础上:当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换.先看类型转换. http://blog.csdn.net/guodongxiaren/article/details/24455653

单元測试和白盒測试相关总结

一.  软件測试方法 1.        软件測试方法包含:白盒測试(White  Box  Testing).黑盒測试(Black  Box Testing).灰盒測试.静态測试.动态測试. 2.        白盒測试:是一种測试用例设计方法.在这里盒子指的是被測试的软件,白盒.顾名思义即盒子是可视的,你能够清晰盒子内部的东西以及里面是怎样运作的.因此白盒測试须要你对系统内部的结构和工作原理有一个清晰的了解,并且基于这个知识来设计你的用例. 白盒測试技术一般可被分为静态分析和动态分析两类技术

JavaScript基础避免隐式的类型转换(004)

JavaScript在普通对比运算符“==”执行时可能会进行隐式的类型转换.比如:false==0和""==0的结果都是true.同理也适合于"!="运算符.要避免这种隐式的类型转换,应该采用"==="和"!=="运算符. var zero = 0; if (zero === false) { // not executing because zero is 0, not false } // antipattern if (

软件測试系列之软件測试过程模型(四)

回想往昔: 在软件开发的不断实践过程中.人们积累经验教训,预估未来发展,总结出了非常多的开发模型,比較典型的开发模型有,边做边改模型,瀑布模型,高速原型模型.螺旋模型,增量模型.演化模型,喷泉模型,智能模型,混合模型还有RAD模型以及近期比較流行的.基于网络的面向对象的模型--RUP(RationalUnifiedProcess,统一软件开发过程. 可是遗憾的是.这些模型中.没有给予測试足够的重视和诠释.所以,才会有后来的软件測试过程模型的诞生.在这些測试模型中,兼顾了软件开发过程,对开发和測试

也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强

在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题,比如一个看起来没有任何问题简单的条件:WHERE c = N'x' ,如果 c 的数据类型是 varchar,并且表中包含大量的数据,这个查询可能导致极大的性能开销,因为这个操作会导致列 c 的数据类型转换为 nvarchar与常量值匹配,在 SQL Server 2008 及之后的版本中,这种操作做了增强,一定程度上降低了性能开销,参考SQL Server 2008 处理隐式数据类型转换在执行计划中的增强

JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换

1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串.parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字:如果不是,该方法将返回NaN,不再继续执行其他操作.但如果该字符是有效数字,该方法

9.12測试(四)——測试笔

怎样測试一支笔 首先.确定Who/What/When/Where/Why/How. 然后.确定測试的计划: 事实核查 预期用途 安全性 非预期用途