c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为
我有以下简单代码:
int speed1 = (int)(6.2f * 10);
float tmp = 6.2f * 10;
int speed2 = (int)tmp;
speed1并且speed2应该具有相同的值,但实际上,我有:
speed1 = 61
speed2 = 62
我知道我可能应该使用Math.Round而不是强制转换,但是我想了解为什么值不同。
我查看了生成的字节码,但是除了存储和加载之外,操作码是相同的。
我也在Java中尝试了相同的代码,并且正确获得了62和62。
有人可以解释吗?
编辑: 在实际代码中,它不是直接6.2f * 10,而是函数调用*常量。我有以下字节码:
为speed1:
IL_01b3: ldloc.s V_8
IL_01b5: callvirt instance float32 myPackage.MyClass::getSpeed()
IL_01ba: ldc.r4 10.
IL_01bf: mul
IL_01c0: conv.i4
IL_01c1: stloc.s V_9
为speed2:
IL_01c3: ldloc.s V_8
IL_01c5: callvirt instance float32 myPackage.MyClass::getSpeed()
IL_01ca: ldc.r4 10.
IL_01cf: mul
IL_01d0: stloc.s V_10
IL_01d2: ldloc.s V_10
IL_01d4: conv.i4
IL_01d5: stloc.s V_11
我们可以看到操作数是浮点数,唯一的区别是stloc/ldloc。
至于虚拟机,我尝试使用Mono / Win7,Mono / MacOS和.NET / Windows,结果相同。
c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为相关推荐
- python把object转换成int_python – Pandas:将dtype’object’转换为int
我已经在Pandas中读取了一个SQL查询,并且这些值以dtype'object'形式出现,尽管它们是字符串,日期和整数.我能够将日期'对象'转换为Pandas datetime dtype,但是在尝 ...
- java byte转成int数组_Java任意长度byte数组转换为int数组的方法
前言 嗯.最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了.撒花. Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些. ...
- java byte数组转int数组_Java任意长度byte数组转换为int数组的方法
前言 嗯.最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了.撒花. Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些. ...
- java 秒转换日期_Java 将日期或秒数转换为日时分秒
```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; / ...
- c语言uint赋值给int,如何在C#中将uint转换为int?
假设您只想从一种类型中提取32位并将其原样转储到另一种类型中: uint asUint = unchecked((uint)myInt); int asInt = unchecked((int)myU ...
- c语言 map转换成字符串数组,JSON数组形式字符串转换为ListMapString,String的几种方法...
json转map通用方法 这里提供一方法,可以当作工具类,只要json字符串没有问题,嵌套几层都可以. import net.sf.json.JSONArray; import net.sf.json ...
- C语言将CSR存储模式转为coo,将大型稀疏矩阵转换为COO时出错(Error converting large sparse matrix to COO)...
将大型稀疏矩阵转换为COO时出错(Error converting large sparse matrix to COO) 我遇到了下面的问题,试图浏览两个大的CSR矩阵: /usr/lib/pyth ...
- java float转换int
1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...
- java int转换float_java float转换int
1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...
- C# ASP.NET 转换为int型的方法 很实用
很多新手在搞c#或者.net开发的时候总会碰到一些小问题,如何知道字符能不能为int型 在这里我写了一个小的函数仅供大家参考: /// <summary>/// 判断是不是int型/// ...
最新文章
- 移动UI设计中的7种主要导航模式
- JavaMail学习之一-邮件传输协议
- getprop 与 dumpsys 命令
- VirtualBox 共享目录
- python3 递归函数的理解
- java集合类详细概述
- 汇编语言的准备知识--给初次接触汇编者 之三
- 2、Eternal框架-svn_有更新!
- python并发处理list数据_3种方式实现python多线程并发处理
- simpla是基于laravel5的php,一个基于laravel5.1的后台
- 苹果公布AirPods Pro维修费用:705元买一只,789买充电盒
- 【Elasticsearch】 es watcher 视频 笔记
- oracle表数据如何恢复,ORACLE如何恢复被delete的表数据
- 将一个js项目改造成vue项目
- memcache学习之c客户端
- java可以看懂php代码吗_同一段代码,在PHP里和Java里都能运行,输出结果相同,你能看懂其中的原理吗?...
- matlab中 dataset用法,dataset中shuffle()、repeat()、batch()用法
- 问题解决_系统识别不了内存
- 离群值是什么意思_ESD—检验离群值
- 架构测试:HAproxy实现负载均衡,前端为nginx+php,数据库实现读写分离和高可用...
热门文章
- java的iterator接口_java Iterator接口和LIstIterator接口分析_java_脚本之家
- 第一个python爬虫_Python爬虫01——第一个小爬虫
- 温州大学c语言作业布置的网站,老师APP上布置作业 三年级娃为刷排名半夜做题_央广网...
- mysql中char,varchar与text类型的区别和选用
- linux如何查看mysql是否启动
- 微信小程序入门一: 简 介、文本、事件、样式
- Makefile中自定义函数的调用
- 交叉编译和交叉调试环境搭建及使用
- 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;
- 前端学习(3209):react中类中方法的this指向