五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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做四舍五入的評論 (共 條)

分享到微博請遵守國家法律
桓仁| 仁布县| 庐江县| 广饶县| 大冶市| 台江县| 宁化县| 静安区| 巍山| 汝阳县| 肇庆市| 栖霞市| 渭南市| 无锡市| 秭归县| 宝坻区| 洪洞县| 沙雅县| 巍山| 西乡县| 武定县| 彭阳县| 临朐县| 招远市| 广元市| 奉化市| 江口县| 沭阳县| 四川省| 七台河市| 青神县| 牟定县| 和田县| 神木县| 大名县| 临猗县| 伊川县| 霸州市| 邯郸市| 镇巴县| 上高县|