首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

float long类型转换解决思路

2012-09-07 
float long类型转换昨天遇到一件事情觉得很奇怪,基本确定是类型转换引起的,刚刚写了一小段测试一下果真如

float long类型转换
昨天遇到一件事情觉得很奇怪,基本确定是类型转换引起的,
刚刚写了一小段测试一下果真如此(c#.net)
float a=8.15f;
long b= (long)(a*1000);

结果b=8149
又用其他几个值测试了一下,基本正常,但是当a*1000的最后一位是0时就会出现比预计值少1的情况

如 8150-8149
  8160-8159
类推


谁知道是什么原因呢,如果是位数过多什么还能从类型的长度去考虑,现在很晕






[解决办法]
这篇文章好一点
Java中用浮点型数据Float和Double进行精确计算时的精度问题
http://www.cnblogs.com/n-u-l-l/archive/2012/05/12/2497063.html

C#也有同样问题,所有语言都有同样的问题,只要计算机是二进制的。

热点排行