Float

【讲古堂】浮点数

假如想象 提交于 2019-12-03 20:12:07
【 讲古堂 】 浮点数 ( dubenju@126.com 2015/12/19 ) 众所周知,由于用高低电平的电路很容易实现二进制,所以在计算机中普遍采用二进制来存储数据。对应的二进制的位用 Bit 来表示。 1 字节 =8Bits ,如果考虑符号的话,那么一个字节能存储的数值范围是 -128 到 127 。只能是整数,不能是小数。那么小数怎么办呢? 小数的话,一定要有小数点的。如果把小数点固定在一个不变的位置的话,就成了定点数。比如 Oracle 数据库的 NUMBER(4, 2) 则能存储 17.25 或 0.50 这样的数。 定点数 (Fixed Point Number) 所谓定点数,即约定数据的小数点位置是固定不变的。通常将定点数据表示成纯小数或纯整数。为了将数表示成纯小数,通常把小数点固定在数值部分的最高位之前;而为了把数表示成纯整数,则把小数点固定在数值部分的最后面。 对纯小数进行运算时,要用适当的比例因子进行折算,以免产生溢出,或过多损失精度。 假设用一个 n 位字来表示一个定点数 x= x0 x1 x2 … xn-1 ,其中一位 x0 用来表示数的符号位,其余位数代表它的量值。为了对所有 n 位进行统一处理,符号位 x0 通常放在最左位置,并用数值 0 和 1 分别代表正号和负号。对于任意定点数 x= x0 x1 x2 … xn-1 ,如果 x 表示的是纯小数

css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')

a 夏天 提交于 2019-12-03 17:46:11
一、抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> </div> 分析CSS代码样式: .outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;} .div1{width: 80px;height: 80px;background: red;float: left;} .div2{width: 80px;height: 80px;background: blue;float: left;} .div3{width: 80px;height: 80px;background: sienna;float: left;} 这里我没有给最外层的DIV.outer 设置高度,但是我们知道如果它里面的元素不浮动的话,那么这个外层的高是会自动被撑开的。但是当内层元素浮动后,就出现了一下影响: (1):背景不能显示 (2):边框不能撑开 (3):margin 设置值不能正确显示 二、清楚css浮动: 方法一:添加新的元素 、应用 clear

CSS float浮动的深入研究、详解及拓展(二)

不羁的心 提交于 2019-12-03 14:20:26
接上回… 五、浮动的非本职工作 浮动的本职工作是让匿名inline boxes性质的文字环绕图片显示,而其他所有用浮动实现的效果都不是浮动应该做的事情,我称之为“非本职工作”。 或许我们并没有过多的深思,把一些实际上不是浮动该干的事情当作“这必须用浮动来实现”。举个常见的例子,列表显示,见下面的图,截自淘宝新版首页: 我不看代码就知道是用浮动实现的,我用firebug一看,果然是,不仅浮动,而且定宽。 ps:要是在几个月以前,我会觉得这实在有待改进,不过现在我的心态宽了,布局思想不同而已,没有孰对孰错之分。 我可以确信,浮动这个属性诞生的那天压根没有想到自己会要做这样的事情,本来它以为自己就让文字环绕显示就OK了,功德圆满了,结果,在web2.0的时代,其却在页面布局中被滥用。可能有人会反驳,你何处此言,有何证据? 我们只要静下心来好好想想浮动的本质,实现的原理,就可以知道为什么浮动本不应该用来对页面进行布局。还记得上一部分所说的浮动的本质吗?即“包裹与破坏”。我们可以用这个(“包裹与破坏”)解释为什么浮动可以让li这类block水平的元素水平排列。 单个无浮动的li元素 看下面的HTML代码: <ul style="width:440px;"> <li style="border:4px solid #ff6633; background:#ffffc0;"><img src="

css定位——position和float的用法详解

ε祈祈猫儿з 提交于 2019-12-02 09:49:29
网页开发中布局是一个永恒的话题。巧妙的布局会让网页具有良好的适应性和扩展性。css的布局主要涉及两个属性——position和float。它们俩看上去很容易被弄混,可是仔细分析一下,它们的区别还是很明显的。下面和大家分享一下我的学习心得。 首先,先介绍一个很重要的概念 “文档流 ” ,明白了这个概念之后就很容易理解position和float的定位原理了。 在css中有一个z-index属性,因为网页是“立体的”,它有z轴,这个z轴的大小就由z-index控制。默认情况下,所有页面元素均位于z-index:0这一层,而这一层顺序排列的元素就构成了 “文档流 ” 。无论是position还是float,它们都是通过改变文档流来实现定位。 css有三种基本的定位机制: 文档流 、浮动和绝对定位 。除非专门指定,否则所有元素都在文档流中定位。也就是说,文档流中的元素的位置由元素在 X(HTML) 中的位置决定。css定位的基本思想很简单,它允许你使得元素相对于其正常应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置来进行定位。 下面介绍position和float的定位原理。 (一)float: float属性定位的元素位于z-index:0层。它是通过float:left和float:right来控制元素在0层左浮或右浮。float会改变正常的文档流排列

.Net 避免 float 转 double 丢失精度的办法

假如想象 提交于 2019-11-28 17:05:32
第一部分:float 转 double 丢失精度 类型 精度 位宽 C# 后缀 可以表示的数值范围 .Net 类名 float 7 位 32bit F -3.4 × 10^ 38 ~ +3.4 × 10^ 38 System.Single double 15~16 位 64bit D ±5.0 × 10^ −324 ~ ±1.7 × 10^ 308 System.Double decimal 28~29 位 128bit M (-7.9 x 10^ 28 ~ +7.9 x 10^ 28 ) / (10^ 0 ~ 28 ) System.Decimal 3 种类型,相互间的转换有 6 种: 转换 C# 代码 精度 结果 float 转 double (double) 10.45F 丢失 10.449999809265137D float 转 decimal (decimal) 10.45F 正常 10.45M double 转 float (float) 10.45D 正常 10.45F double 转 decimal (decimal) 10.45D 正常 10.45M decimal 转 float (float) 10.45M 正常 10.45F decimal 转 double (double) 10.45M 正常 10.45D 可以看到只有 float 转 double

Java中浮点型数据Float和Double进行精确计算的问题

◇◆丶佛笑我妖孽 提交于 2019-11-27 18:11:16
一、浮点计算中发生精度丢失 大概很多有编程经验的朋友都对这个问题不陌生了:无论你使用的是什么编程语言,在使用浮点型数据进行精确计算时,你都有可能遇到计算结果出错的情况。来看下面的例子。 // 这是一个利用浮点型数据进行精确计算时结果出错的例子,使用Java编写,有所省略。 double a = (1.2 - 0.4) / 0.1; System.out.println(a); 如果你认为这个程序的输出结果是“8”的话,那你就错了。实际上,程序的输出结果是“7.999999999999999”。好,问题来了。到底是哪里出了错? 浮点型数据进行精确计算时,该类问题并不少见。我们姑且称其为“精度丢失”吧。大家可以试着改一下上面的程序,你会发现一些有趣的现象: 1、如果你直接使用一个数字代替括号里的表达式,如“0.8 / 0.1”或者“1.1 /0.1”,那么似乎,注意只是似乎不会出现问题; 2、我们可能会做第二个测试,就是对比“0.8 / 1.1”和“(1.2 - 0.4) / 1.1”的结果,没错,我就是这样做的。那么你会发现,前者的结果是“0.7272727272727273”(四舍五入后的结果),而后者的结果是 “0.7272727272727272”(没有进行四舍五入)。可以推测,经过一次计算后,精度丢失了; 3、很好,我觉得我们已经很接近真相了