C#学习日记06---数据类型 之 浮点数类型
来源:互联网 发布:数据库物理设计图 编辑:程序博客网 时间:2024/06/05 05:29
数值类型之浮点数类型:
在我们的日常生活中不仅有整数 ,还存在小数,在C#中小数有2种数据类型来表示 (单精度)float 、(双精度)double。
他们的差别在于取值范围与精度不同,计算机对浮点数的运算速度大大低于对整数的运算速度,对double型的运算速度低于对float的运算速度,如果在程序中大量的使用双精度类浮点数,将会占用更多的内存单元,而计算机的处理任务也会更加繁重,但是用double类型的结果相对于float会更加精确,因此在对精度 要求不是很高的情况下我们可以采用float 类型。
单精度(float)类型: 取值范围在正负 1.5*10^-45 到 3.4*10^38 之间,精度为7到8位数字;
双精度(double)类型: 取值范围在正负 5.0*10^-324 到 1.7*10^308 之间 精度为15到16位数字;
我写个程序来区分下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) {//同一类型在同一行定义时 用 , 分开 float a = 3.0f,b = 10.0f; //这里注意定义float时 加上f/F 应为默认小数是double类型 float c = b / a; //相除 double d = 3.0, e = 10.0; double f = e/d; Console.WriteLine("float c={0}\ndouble f={1}",c,f); //输出 "\n" 表示换行 } }}
结果对比:
本着求实精神我认真数了一下 float 的结果有8位其中7位是数字;double 的结果有16位其中15位是数字3;
本着反思的态度我又反思到了float 与double 的属性,float 的范围不是在 正负 1.5*10^-45 到 3.4*10^38 之间 的吗?至少可以表示38位数字啊,这才7位, double 至少可以表示300多位数字啊,这才16位,我写的是 10/3 结果应该有38个3,或 300多个3 才对啊???为什么???是不是 在第9位与 第 17位的时候四舍五入了? 我又 写了如下代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) { float a = 3.333334444333333f; //第8位(小数点也算一位)开始是4,第9位是4 double d = 3333333333333.3455555544; //第16位是4,17位是5 Console.WriteLine("float c={0}\ndouble f={1}",a,d); //输出 "\n" 表示换行 } }}
结果是这样:
果然在float 的第8位是4舍去变为了0省略掉,double 的第16位本来是4,由于17位是5所以加1,后面为0省略。。
- C#学习日记06---数据类型 之 浮点数类型
- C#学习日记04---数据类型 之 整数类型
- C#学习日记05---数据类型 之 布尔类型
- C#学习日记07---数据类型 之 decimal类型
- C#学习日记08---数据类型 之 字符类型
- C#学习日记09---数据类型 之 结构(Struct)类型
- C#学习日记11---数据类型 之 枚举(enum)类型
- C#学习日记12---数据类型 之 引用类型(前言)
- C语言学习九数据类型的学习之浮点数
- MySQL数据类型--浮点数类型和定点数类型
- C#学习日记19----引用类型 之 委托(Delegate) 类型
- C#学习日记03---数据类型
- C#学习日记14---引用类型 之 object类
- C#学习日记16---引用类型 之 数组
- PostgreSQL学习篇9.3 浮点数类型
- PostgreSQL学习篇9.3 浮点数类型
- C#数据类型之引用类型
- Matlab浮点数类型
- POJ 3186 Treats for the Cows(区间DP)
- 玩转vsftpd服务器的四大高级配置
- 1103 host is not allowed to connect to this mysql server
- 矩阵的加法运算
- QT中的内存管理一个小经验
- C#学习日记06---数据类型 之 浮点数类型
- hdu 5486 Difference of Clustering
- HTML5 Form Data 对象的使用-jQuery
- UIScrollView与NSTimer计时器、分页指示器控件的使用
- Java 用hashmap统计词频
- 使用多态的注意事项
- 定位服务 CLLocationManager 的简单用法
- 网站推荐大全
- 随笔分类 - 无废话ExtJs系列教程