產(chǎn)品設(shè)計(jì)中,小數(shù)處理有哪些細(xì)節(jié)?
設(shè)計(jì)產(chǎn)品中會(huì)遇到很多類(lèi)型的數(shù)據(jù),當(dāng)數(shù)據(jù)類(lèi)型為小數(shù)時(shí),就需要對(duì)小數(shù)進(jìn)行處理,但是我們很容易忽略對(duì)小數(shù)的思考,想當(dāng)然的采取了四舍五入并保留兩位小數(shù)的做法,本文想和大家仔細(xì)探討處理小數(shù)時(shí)的細(xì)節(jié)。
一、是否需要保留小數(shù)
先來(lái)看下我們遇到的兩個(gè)數(shù)字:第一個(gè)小數(shù)是對(duì)于某商品的定價(jià)4.5,第二個(gè)小數(shù)是對(duì)于需要載具的確定;當(dāng)前有18斤米,每個(gè)袋子可以運(yùn)走4斤米,需要的袋子是18 / 4 = 4.5,同時(shí)都得到了4.5這個(gè)帶小數(shù)的數(shù)據(jù)。
根據(jù)生活常識(shí)很輕松就可以判斷:商品定價(jià)4.5需要保留,而袋子4.5需要去掉小數(shù)——因?yàn)?.5的金額是有金融意義的,而0.5的袋子是不存在的。
通過(guò)這兩個(gè)數(shù)字,我們能夠發(fā)現(xiàn):當(dāng)我們遇到帶小數(shù)的數(shù)據(jù)時(shí),首先需要判斷的是,這個(gè)小數(shù)部分是否需要被保留。
那么,什么情況下小數(shù)需要被保留呢?
- 小數(shù)部分具有業(yè)務(wù)價(jià)值,是現(xiàn)實(shí)情況在數(shù)據(jù)層面的一個(gè)反饋。通俗的講就是這個(gè)小數(shù)部分的價(jià)值可以很明確的被人感知道,是約定俗成的,5元中的0.5就代表了現(xiàn)實(shí)生活中的5角錢(qián),5.27米的0.27就代表了0.27米或者27厘米的長(zhǎng)度。
- 小數(shù)部分具有數(shù)據(jù)分析價(jià)值,可以擴(kuò)充數(shù)據(jù)分析的顆粒度,幫助我們觀察更細(xì)致的數(shù)據(jù)變動(dòng)。兩種價(jià)值可以同時(shí)在一個(gè)數(shù)據(jù)中存在。
金融證券交易市場(chǎng)中,曾有過(guò)以整數(shù)作為計(jì)價(jià)法則的做法,這種做法沒(méi)有錯(cuò)誤的,但是對(duì)于股票的價(jià)格只能從整數(shù)級(jí)別去觀察,1元掛單后就是2元,反映不出股票價(jià)格的細(xì)微波動(dòng)。
更嚴(yán)重的是:當(dāng)交易雙方有一方愿意出的價(jià)格大于1元但是小于2元時(shí),會(huì)放棄去掛單,難以成交,即使成交也有一方內(nèi)心不滿(mǎn)。
而引入小數(shù)計(jì)價(jià)法后,買(mǎi)賣(mài)掛單可以是1.60,1.61,1.62等,能更細(xì)致的反映金融市場(chǎng)的波動(dòng),也促使了交易市場(chǎng)更加活躍,這就是小數(shù)部分具有數(shù)據(jù)分析價(jià)值的實(shí)際運(yùn)用。
二、確定需要保留的位數(shù)
再來(lái)看一個(gè)數(shù)字:
該數(shù)字是對(duì)于用戶(hù)預(yù)期收益的展示,通過(guò)用戶(hù)輸入的本金,所選擇的年化利率和投資周期,我們得到預(yù)期收益是2527.122794元。
根據(jù)上文的分析,我們可以得知:該數(shù)據(jù)的小數(shù)部分是用戶(hù)金錢(qián)的反映,具有金融價(jià)值需要被保留,但是保留全部小數(shù)會(huì)導(dǎo)致頁(yè)面無(wú)法放下或者頁(yè)面縮放時(shí)無(wú)法兼容——這就需要我們保留部分小數(shù)。
這里同樣考慮到人民幣的最小單位是分,該數(shù)據(jù)保留兩位小數(shù)即可確定需要保留小數(shù)后,就需要思考第二個(gè)細(xì)節(jié)“需要保留的位數(shù)”。
那么,我們?nèi)绾未_定需要保留的位數(shù)?
- 當(dāng)遇到小數(shù)位數(shù)太長(zhǎng)的情況時(shí),因?yàn)椴⒉皇敲總€(gè)小數(shù)都具有業(yè)務(wù)價(jià)值的,可以通過(guò)業(yè)務(wù)價(jià)值來(lái)確定需要保留的位數(shù),人民幣的最小單位時(shí)分,涉及到金額相關(guān)的數(shù)據(jù),超過(guò)兩位小數(shù)的部分就沒(méi)有業(yè)務(wù)價(jià)值,就可以保留兩位小數(shù)。這是通過(guò)小數(shù)部分的業(yè)務(wù)價(jià)值來(lái)確定需要保留的位數(shù)
- 我們也能從足夠觀察出差異的數(shù)據(jù)角度確定需要保留的位數(shù),這是通過(guò)小數(shù)部分的數(shù)據(jù)及價(jià)值來(lái)確定需要保留的位數(shù)
現(xiàn)在我們要計(jì)算得到某商品連續(xù)2日的銷(xiāo)售額占比,分別為0.851223,0.856745,因?yàn)槲覀兿Mㄟ^(guò)銷(xiāo)售額占比分析商品連續(xù)2日的差異,可以發(fā)現(xiàn)從第三位小數(shù)就足夠支持我們分析兩者的差異,銷(xiāo)售額占比保留3位小數(shù)即可,這就是通過(guò)數(shù)據(jù)價(jià)值來(lái)確定小數(shù)部分需要保留的位數(shù)
到這里,我們就能發(fā)現(xiàn):保留位數(shù)并不是一個(gè)絕對(duì)的,是需要根據(jù)實(shí)際的業(yè)務(wù)情況或者所需要的數(shù)據(jù)價(jià)值來(lái)確定的。
三、選擇取數(shù)進(jìn)位的策略
確定需要保留的位數(shù)后,我們就需要思考第三個(gè)細(xì)節(jié)“選擇怎么樣的取數(shù)進(jìn)位策略”。
我們?cè)趺磥?lái)選擇呢?可以通過(guò)場(chǎng)景需要來(lái)選擇:
1. 去尾法
依舊是預(yù)期收益這個(gè)數(shù)字2527.122794,確定保留兩位小數(shù)后,需要對(duì)舍棄部分小數(shù)進(jìn)行處理,因?yàn)轭A(yù)期收益是金融數(shù)據(jù),在金融領(lǐng)域我們會(huì)要求處理后的數(shù)據(jù)不超過(guò)原數(shù)據(jù),否則銀行或者金融公司需要承擔(dān)多出部分的價(jià)值,所以這里需要對(duì)數(shù)據(jù)進(jìn)行去尾法處理,得到處理后的數(shù)據(jù)為2527.12。
通過(guò)上面的數(shù)字,我們能夠了解到:當(dāng)我們所遇到的場(chǎng)景帶有不超過(guò)的約束條件時(shí),就需要我們?cè)谌サ舳嘤嗖糠值臄?shù)據(jù)時(shí),直接保留最后一位數(shù)字。
這樣做的目的是:保證處理后的數(shù)據(jù)比原數(shù)據(jù)小,從而不會(huì)造成數(shù)據(jù)溢出的情況。
2. 進(jìn)一法
一起來(lái)看這個(gè)數(shù)字:
現(xiàn)在有45個(gè)同學(xué)參加活動(dòng),每個(gè)同學(xué)需要發(fā)放1瓶水,1箱24瓶水,需要幾箱水?
45 / 24 = 1.875
因?yàn)橘I(mǎi)1箱水的話有21個(gè)同學(xué)喝不到水,為了保證每個(gè)同學(xué)都能喝到水,需要對(duì)數(shù)據(jù)進(jìn)行進(jìn)一法處理,得到處理后的數(shù)據(jù)為2。
通過(guò)上面的數(shù)字,我們能夠了解到:當(dāng)我們所遇到的場(chǎng)景帶有不少于的約束條件時(shí),就需要我們?cè)谌サ舳嘤嗖糠值臄?shù)據(jù)時(shí),在保留部分的最后一位數(shù)字加1,保證處理后的數(shù)據(jù)比原數(shù)據(jù)大,從而不會(huì)造成數(shù)據(jù)無(wú)法滿(mǎn)足或覆蓋的情況。
如果我們面對(duì)場(chǎng)景不帶有上述兩種方法不少于或者不超過(guò)的約束條件時(shí),就可以選擇我們最通用的方法四舍五入,使的被保留后的數(shù)據(jù)與實(shí)際值差值不超過(guò)最后一位數(shù)量級(jí)的二分之一,追求數(shù)據(jù)角度的最小誤差。
四、總結(jié)
在設(shè)計(jì)產(chǎn)品中,小數(shù)的出現(xiàn)非常常見(jiàn),但是很容易被我們忽略;實(shí)際上,簡(jiǎn)單的一個(gè)小數(shù)也可以分3個(gè)步驟去分析,“是不是要保留”,“要保留幾位小數(shù)”,“保留后采取什么樣的取數(shù)進(jìn)位策略”。
仔細(xì)考慮每個(gè)環(huán)節(jié)的細(xì)節(jié),選擇合適的位數(shù)和取數(shù)策略,能幫助我們通過(guò)小數(shù)準(zhǔn)確表達(dá)業(yè)務(wù)場(chǎng)景,反映真實(shí)的情況。
相反,不合適的方案,會(huì)帶來(lái)數(shù)據(jù)歧義,引起誤導(dǎo),甚至產(chǎn)生嚴(yán)重后果。
作者:晌午,微信公眾號(hào):晌午自習(xí)室
本文由 @晌午 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議
皮毛 你去搞搞ERP 含稅價(jià) 未稅價(jià)的小數(shù)點(diǎn)問(wèn)題能弄哭你
老哥有類(lèi)似的文章嗎?
老哥有類(lèi)似的文章嗎?