最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

教會Scratch做四舍五入

2022-08-24 11:49 作者:SPC編程愛好者  | 我要投稿

? ? ? ? Scratch里沒有提供精確到小數(shù)點(diǎn)后幾位的代碼塊,導(dǎo)致在scratch里,保留小數(shù)位數(shù)時,往往會出現(xiàn)一大串的小數(shù)位,大概是17或18位,這完全不符合用戶的需求,于是干脆“一不做二不休”,自己用自定義模塊,寫了一個精確小數(shù)位數(shù)的自制代碼塊,基本上解決了難以準(zhǔn)確保留小數(shù)位數(shù)的“缺陷”吧。主要思路是:

? ? ? ? 一、先找出小數(shù)點(diǎn)的“位置”,例如小數(shù)36.8365,則小數(shù)點(diǎn)的位置在3,即第三個符號就是小數(shù)點(diǎn);再比如,3.1415926,小數(shù)點(diǎn)的位置就在2。

? ? ? ??二、接著根據(jù)實(shí)際需要精確的位數(shù),找出前該小數(shù)的前n個數(shù)字,比如小數(shù)3.1415926,想精確到3位小數(shù),那么在已經(jīng)找到小數(shù)點(diǎn)位置的前提下,再加3,即2+3=5,則找出前5個數(shù)字,包括小數(shù)點(diǎn)在內(nèi)。此時如果不需要四舍五入,那么就完成小數(shù)精確的任務(wù)。

? ? ? ??三、如果需要“五入”,那么還得多判斷保留位數(shù)的下一位是否大于4,還是上面這題,保留三位小數(shù)時,最后一位的1需要加1,因?yàn)樗南乱晃皇?,根據(jù)“五入”的要求,1要加1變2,才能符合要求。

? ? ? ??四、接下來的操作稍微復(fù)雜一些,要先把得到的小數(shù)變成整數(shù),比如先把3.141擴(kuò)大1000倍,變成3141,然后加1,變成3142,最后再縮小1000倍,變?yōu)?.142,最終完成“五入”。

? ? ? ??為何不在3.141時,直接加0.001變成3.142呢?我在測試時發(fā)現(xiàn),用小數(shù)直接進(jìn)行數(shù)學(xué)運(yùn)算時,大概率又會發(fā)生小數(shù)位變17位或18位的情況,不懂這是不是scratch的一個bug,因此后來想到的辦法,就是“舍近求遠(yuǎn)”,先擴(kuò)大倍數(shù),然后加1,再縮小相應(yīng)的倍數(shù)“還原”回來,如此一來,就不會出現(xiàn)位數(shù)變多的情況。

代碼截圖


教會Scratch做四舍五入的評論 (共 條)

分享到微博請遵守國家法律
齐河县| 云梦县| 汉源县| 阜城县| 泰兴市| 平南县| 乐陵市| 寿阳县| 岳池县| 温泉县| 临澧县| 沙河市| 葫芦岛市| 太康县| 镇安县| 紫云| 伊通| 琼结县| 华蓥市| 八宿县| 荣昌县| 什邡市| 太康县| 永昌县| 合水县| 饶平县| 绿春县| 龙山县| 渝中区| 吴堡县| 临湘市| 铜梁县| 华阴市| 莱芜市| 壤塘县| 柘荣县| 调兵山市| 宜黄县| 长春市| 扎赉特旗| 蓬溪县|