1. echo intval((0.1+0.7)*10); //输出结果为 7
上边的例子可能细心都看到过,也有这样的解释:
到目前为止,可能大家都能理解,因为 float 转换 int ,精度丢失是很正常的事情。
但是简单的解释并没有满足我的好奇心,当我做了以下的例子,开始不解了:
1. 1,echo intval((0.2+0.6)*10); // 8
2. 2,echo intval((0.3+0.5)*10); // 8
3. 3,echo intval((0.4+0.4)*10); // 8
4.
5. 4,echo intval((0.1+0.8)*10); // 9
6. 5,echo intval((0.2+0.7)*10); // 9
7. 6,echo intval((0.1+0.6)*10); // 7
8. 7,echo intval((0.0+0.7)*10); // 7
9. 8,echo intval(0.8*10); // 8
10. 9,echo intval((0.1+0.2)*10); // 3
上边的例子 为什么 唯独 (int)((0.1+0.7)*10) 的结果这么特殊? 也许你可能会这样解释:
0.1+0.7 实际上等于 0.79
那么0.2+0.6,0.3+0.5 为什么不是 0.79.. 呢? 还有其他的 0.1+0.8,0.2+0.7 为什么不是0.89呢?
那么引出来最终的问题,为什么0.1 + 0.7 这么特殊
- 大小: 45.5 KB
分享到:
相关推荐
"rtthread_simulator_v0.1.0.7z"是一个与RT-Thread相关的压缩包文件,它包含了用于学习和实践RT-Thread内核入门的MDK(Keil Microcontroller Development Kit)项目工程。这个压缩包重709KB,经过测试,确保用户可以...
xmlrpc++0.7源代码,带VC工程文件,方便对xml进行编码和解码。如: <member> <name>result</name> <value><i4>0</i4></value> <member> <name>desc</name> <value>Success</value> <member> <name>group...
x=sin(2*pi*50*t)+0.7*sin(2*pi*150*t)+0.5*sin(2*pi*250*t)+0.1*randn(size(t)) 设计参数: 脉冲响应不变法IIR巴特沃斯型低通滤波器 采样频率fs=1000Hz,通带边频60Hz处衰减0.5dB,阻带边频150Hz处衰减50dB。
xmlrpc++0.7.zip这个压缩包包含了XML-RPC协议在C++语言中的实现代码和测试例子,是开发者学习和使用XML-RPC的一个实用资源。 首先,我们要理解XML-RPC的基本概念。XML-RPC使用XML作为数据交换格式,通过HTTP协议...
Model:Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5; 0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60; 0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3; 0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8; x1+x2+x3+x4+x5; end 然后,选择“求解...
本资源摘要信息是关于数学建模选修课策略模型的知识点总结,通过对问题的分析和模型的建立,解决学生最优选课问题。 一、模型假设及符号说明 * 模型假设:学生只要选修就能通过,每个学生都必须遵守规定。 * 符号...
- **DI+0.7**:通道1的锁存器(仅在计数模式下) #### CPU313C高速计数硬件接线 - **最大支持的高速计数器数量**:3路 - **支持的编码器类型**:24V增量式、源型 - **接线端子说明**: - **X1**:用于模拟量输入...
这个是因为计算机的本身对浮点数识别的问题….....echo (int)((0.1+0.7)*10); //结果7 echo (float)((0.1+0.7)*10); //结果8 <?php $a = 0.1; $b = 0.7; var_dump(($a + $b) == 0.8); //打印出来的值居然为 boole
function norm_plot(n1,n2,color) x=n1-3*n2:6*n2/100:n1+3*n2; y=normpdf(x,n1,n2); plot(x,y,color,'...text(n1+0.7*n2,0.95*normpdf(n1,n1,n2),['\mu=',num2str(n1),',','\sigma=',num2str(n2)]) axis off
Min = 0.2*x1 + 0.7*x2 + 0.4*x3 + 0.3*x4 + 0.5*x5; 0.3*x1 + 2*x2 + x3 + 0.6*x4 + 1.8*x5 >= 60; 0.1*x1 + 0.05*x2 + 0.02*x3 + 0.2*x4 + 0.05*x5 >= 3; 0.05*x1 + 0.1*x2 + 0.02*x3 + 0.2*x4 + 0.08*x5 >= 8...
在Windows环境下安装InfluxDB Studio 0.1.0版本,用户只需解压下载的"InfluxDBStudio-0.1.0.7z"压缩包,运行其中的可执行文件,即可启动应用程序。需要注意的是,确保系统已安装兼容的Java运行环境,因为许多图形化...
这个“instantclient windows.x64-12.2.0.1.0.7z”压缩包是专为Windows 64位系统设计的版本,包含了Oracle Instant Client的12.2.0.1.0更新。 Oracle Instant Client的核心组件包括: 1. **oci.dll**:Oracle Call ...
SVM的简单数据分类N1=440; for i=1:N1 x1(1,i)=-1.7+0.9*randn(1); x1(2,i)= 1.6+0.7*randn(1); end; N2=400; for i=1:N2 x2(1,i)= 1.3+0.9*randn(1); x2(2,i)=-1.5+0.7*randn(1); end;
min = 0.2*x1 + 0.7*x2 + 0.4*x3 + 0.3*x4 + 0.5*x5; 0.3*x1 + 2*x2 + x3 + 0.6*x4 + 1.8*x5 >= 60; 0.1*x1 + 0.05*x2 + 0.02*x3 + 0.2*x4 + 0.05*x5 >= 3; 0.05*x1 + 0.1*x2 + 0.02*x3 + 0.2*x4 + 0.08*x5 >= 8...
高级java笔试题 ...(int)((0.1+0.7)*10);//7 看似有穷的小数, 在计算机的二进制表示里却是无穷的 echo serialize(0.1+0.7); //d:0.79999999999999993; 熟悉的linux命令 ps cat tail top awk javascript跨域
设计的一个FIR滤波器,对被噪声干扰的信号提取其基波工频信号。...x=sin(2*pi*50*t)+0.7*sin(2*pi*150*t)+0.5*sin(2*pi*250*t)+0.1*randn(size(t)) 设计参数: 窗函数FIR带通滤波器 通带范围:40Hz—60Hz。
JS无法进行精确计算的bug 在做CRM,二代审核需求审核详情页面时。需要按比例(后端传类似0.8的小数)把用户输入的数字显示在不同的地方。 在做dubheInvest = invest * (1 – ratio);...console.log( 0.1 + 0.7
最近在做项目的时候,涉及到产品价格的计算,经常会出现JS浮点数精度问题,这个问题,对于财务管理系统的开发者来说,是个非常严重的问题(涉及到钱相关的问题都是严重的问题),这里把相关的原因和问题的解决方案...