对非正确使用浮点型数据而导致项目BUG的问题探讨
2017-05-03 16:33
323 查看
乘法分配律
在上小学的时候就已经学习过乘法分配律,乘法分配律的详细内容是:两个数的和与一个数相乘。能够先把他们分别与这个数相乘,再相加。得数不变。乘法分配律的定义还能够用表达式“(a+b)×c = a×c+b×c”的形式给出。乘法分配律的反用“a×c+b×c = (a+b)×c”相同成立。比如“10.2×(3+7) = 10.2×3+10.2×7 = 102”(反用形式为“10.2×3+10.2×7 = 10.2×(3+7) = 102”)。
计算机世界中的乘法分配律
为了一窥计算机世界中的乘法分配律。本文给出下面实例进行探究。
本例中先将整数24(纪念儿时玩过的名为“24点”的游戏)切割成四个整数的和,此部分操作在GetNumberList()方法中实现。切割后的四个整数保存进结构体变量中,整数24的全部切割结果则保存进List<Number>类型的集合numList中。接着遍历集合numList。每次遍历中先取出24的四个切割数分别与5相乘再相加(相当于乘法分配律中的a×c+b×c部分)得到结果result1。再将计算的结果result1与24 * 5(相当于乘法分配律中的(a+b)×c部分)的结果result进行比較。相等则输出true,否则输出false。
在上小学的时候就已经学习过乘法分配律,乘法分配律的详细内容是:两个数的和与一个数相乘。能够先把他们分别与这个数相乘,再相加。得数不变。乘法分配律的定义还能够用表达式“(a+b)×c = a×c+b×c”的形式给出。乘法分配律的反用“a×c+b×c = (a+b)×c”相同成立。比如“10.2×(3+7) = 10.2×3+10.2×7 = 102”(反用形式为“10.2×3+10.2×7 = 10.2×(3+7) = 102”)。
计算机世界中的乘法分配律
为了一窥计算机世界中的乘法分配律。本文给出下面实例进行探究。
本例中先将整数24(纪念儿时玩过的名为“24点”的游戏)切割成四个整数的和,此部分操作在GetNumberList()方法中实现。切割后的四个整数保存进结构体变量中,整数24的全部切割结果则保存进List<Number>类型的集合numList中。接着遍历集合numList。每次遍历中先取出24的四个切割数分别与5相乘再相加(相当于乘法分配律中的a×c+b×c部分)得到结果result1。再将计算的结果result1与24 * 5(相当于乘法分配律中的(a+b)×c部分)的结果result进行比較。相等则输出true,否则输出false。
using System;
using System.Collections.Generic;
namespace NoticeDetailExp1
{
class Program
{
static void Main(string[] args)
{
List<Number> numList = new List<Number>();
numList = GetNumberList();
int result = 24 * 5;
int result1;
foreach (Number n in numList)
{
result1 = n.Num1 * 5
+ n.Num2 * 5
+ n.Num3 * 5
+ n.Num4 * 5;
}
Console.WriteLine("n.Num1={0}, n.Num1={1}, n.Num1={2}, n.Num1={3}:result1 == result?
{4}", n.Num1, n.Num2, n.Num3, n.Num4, result1 == result);
}
private static List<Number> GetNumberList()
{
List<Number> numList = new List<Number>();
for(int i=0; i<=24; i++)
for(int j=0; j<=24; j++)
for(int k=0; k<=24; k++)
for(int l=0; l<=24; l++)
if (i + j + k + l == 24)
{
相关文章推荐
- 对非正确使用浮点型数据而导致项目BUG的问题探讨
- 非正确使用浮点数据由项目产生BUG讨论的问题
- 数据值为NULL,导致条件查询不到正确结果,ISNULL函数的使用解决问题
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
- 快速解决ThinkPHP 项目中使用原生PHP导致的SQL注入问题
- 解决使用Maven项目,无法正确编译的问题
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
- unity3d导出xcode项目使用afnetworking 3框架导致_kUTTagClassMIMEType 问题解决方案
- IOS开发笔记之十四——使用系统相册或相机导致状态栏隐藏的问题(bug总结四)
- PHP中使用foreach和引用导致程序BUG的问题介绍
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
- 使用make编译android项目时,修改了文件xml文件名称,导致编译出错的问题原因
- PHP中使用foreach和引用导致程序BUG的问题介绍
- 遇到问题----java---多线程----线程数一直增加----web项目中线程池的正确使用方式
- 数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
- awk 没有正确使用换行符导致的一个 BUG
- 这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MFC项目使用webbrowser控件,点击载入的页面里的文件下载链接后导致程序的崩溃问题的解决方案
- IntelliJIdea 2016.2 使用 tomcat 8.5 调试spring的web项目时,bean被实例化两次导致timer和thread被启动了两遍的问题的解决
- 使用jrebel插件解决修改项目中的class导致server重启问题-----for resin server