Scratch 教程 之 如何四舍五入保留一个小数到指定的数位

        有些时候,我们需要四舍五入一个多位小数到指定的位,但scratch并没有这个积木,怎么做呢?我来教你~

        我们创建一个函数,需要时调用就行了~

        如图,创建一个带参函数,勾选"运行时不刷新屏幕":

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第1张图片

注:勾选"运行时不刷新屏幕"

我们再创建两个变量,分别命名为"返回值"、"临时数据",分别用于返回值以及存储临时数据

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第2张图片

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第3张图片

在这个函数调用时,"返回值"变量应该是空的,所以初始化一下:

重要分析了


分析:要四舍五入一个多位小数并将它保留到指定的位

我们可以举几个例子,找出规律:

11.4554保留两位小数是11.46;114.514保留两位小数是114.51;1145.14保留一位小数是1145.1······

        通过以上的举例,我门不难发现——这些小数保留的结果看的是要保留的位数的下一位,如果这一位>4则朝前进1,否则舍去,也就是四舍五入。那么怎么用程序做出这种效果呢?scratch原版只能支持【小数四舍五入保留到整数】的判断。

        可如果将这个小数乘以一个数值变成另一个小数(或整数),四舍五入后再除以这个数不就行了?问题又来了,是乘以几呢?

        我们设这个小数是一个变量(number),需要四舍五入它到第(x)位,将(number)设为随意的一个小数,再将(x)也设为一个随意的正整数,我这里设的(number)是11.4514,设的(x)是3,要将它四舍五入到第3位,通过之前讲的原理,应当是先将这个数与100相乘,四舍五入后再除以100,那这个相乘的数与3有什么关系呢?

        不难发现,这个数是10的3次方(10^3),我们通过这个例子,知道了应该将(number)乘以多少了——10的x次方(10^x)。那怎么计算呢?我们从"运算"中找到"绝对值()",点击小三角,找到"10^()",再将之前我们创建的参数(x)拖进去就行啦~


Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第4张图片

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第5张图片

        知道了这个"公式",我们继续在这个函数下方编程,首先将(number)*10^(x),并将得到的值四舍五入,保存到(临时数据)中;接着,按照我们之前的思路,还要除以一个数,得到返回值,这个数其实也就是10的x次方(10^x),我们可以这么做:将(返回值)变量设为(临时数据)除以(10^x)。如图:

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第6张图片

其实,如果x的值为负数/小数(也就是不为正整数)时,返回值就会出错!

我们加个判断,优化下代码:Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第7张图片

拼接:

Scratch 教程 之 如何四舍五入保留一个小数到指定的数位_第8张图片

 OK,如上,就是我们今天的全部代码~

你可能感兴趣的:(Scratch,热门作品专栏,数据结构,数学,scratch,青少年编程)