就差一点点-微妙的强制类型转换
今天在写UnitTest时发现有个测试死活通不过。
其中语句的关键代码是这样的:
float scale = 0.24f;
int actualWidth = 800;
int width = (int)(actualWidth * scale);
AssertEquals(192, width);
dotUnit报错, expected value 192, 191 was got.
但是如果这样写就对了。
float scale = 0.24f;
int actualWidth = 800;
float widthf = actualWidth * scale; // 这里是192.0
int width = (int)widthf; //这样就是192了。
最后改成了
int width = (int)(float)(actualWidth * scale);
搞定。
但是问题仍然存在,C#编译器(.Net runtime)对于这两种强制类型转换内部处理有何差异呢?
第一种强制类型转换的结果为什么不对?我还没有很明确的答案,有谁知道?
转载于:https://www.cnblogs.com/jonnyyu/archive/2005/07/20/196691.html
就差一点点-微妙的强制类型转换相关推荐
- 自动类型转换和强制类型转换
自动类型转换: 在Java中,任何情况下,整数类型的字面值默认当成int类型处理 小容量可以自动转换成大容量,这种操作被称为自动类型转换 容量大小的定义: 容量大小不是指数据类型的字节数,而是指这个数 ...
- As与强制类型转换的区别以及Is运算符的使用
前言: 开发人员经常需要将一个对象从一个类型转换成其他类型. 在c#中,类型转换按照转换方式分类分为了隐式转换和显式转换,按对象分类又分为了值类型转换和引用类型转换 CLR(参考:http://bai ...
- 重载new、delete和强制类型转换运算符()
1.重载new和delete运算符 内存管理运算符new.new[].delete和delete[]也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数.一般情况下,内建的内存管理运算符就 ...
- C++中的向上类型转换和向下类型转换+四种强制类型转换
转自博客:http://blog.csdn.net/wangweitingaabbcc/article/details/7720979# 在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分 ...
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
一.栈和托管堆 通用类型系统(CTS)区分两种基本类型:值类型和引用类型.它们之间的根本区别在于它们在内存中的存储方式..NET使用两种不同的物理内存块来存储数据-栈和托管堆.如下图所示: 值 ...
- 《你不知道的JavaScript》整理(六)——强制类型转换
JavaScript中通常分为两种类型转换,"隐式强制类型转换"(implicit coercion)和"显式强制类型转换"(explicit coercion ...
- C++编程进阶4(C++中的强制类型转换运算符、不要返回自定义类内部成员的指针,引用和迭代器)
十五.C++中的强制类型转换 C语言中的强制类型转换方式有两种 T i = (T)exp; T i = T(exp); 这两种方式没有差别,C++中也支持这两种方式,但是和C++中的强制类型转换运算符 ...
- static_cast与c风格的强制类型转换比较
class A {int a; };class B {int b; };class C : public A {int c; };int main() {B b;C c;A* p1 = (A*) &a ...
- 初学python-字符串中引号的使用、input简介、强制类型转换、加减乘除简写、条件判断...
一.字符串中单引号和双引号的使用: 1.字符串以英文单引号' '引用.eg:'Hello World' 2.若字符串中含有单引号,则以英文双引号" "引用.eg:"I'm ...
最新文章
- ASSERT(IsOpen());
- 图集cancelButtonIndex,发送通知简洁写法
- 将SAP Cloud for Customer Customer视图的Account ID配置出来
- 百度地图得到两地点(通过经纬度)的距离、 通过经纬度获取详细地址
- bootstrap-代码-内联代码
- java 面试什么是类_Java 面试题代码类收集
- index.dat文件剖析
- 【Spring】详解ContextLoaderListener和DispatcherServlet的区别
- 数据的格式化和处理(复习)
- smarty一维数组的引用
- 阿里java代码规范插件
- java开发实例大全_java编程实例大全100例
- 芯原的神经网络处理器IP获百余款人工智能芯片采用
- 传染病模型中作图与计算(matlab,数学模型)
- 职称计算机考试相当于几级,全国职称计算机考试与全国计算机等级考试有什么不同?...
- Sphinx PHP api全文检索的例子
- 如何使用python实现翻转英文句子的单词顺序
- 【JY】45天缩短到4天,突发性Fluent仿真任务怎么破?
- 机器学习中火爆的对抗学习是什么,有哪些应用?
- Linux网络开始收发包之前需要做的事情——创建ksoftirqd内核进程