1樓:嘞好
正好最近在研究這個數值修約標準,你已經快接近正確答案了。
先看一下數值修約國標GB/T 8170-2008是怎麼規定的,估計看完也暈乎乎的,沒關係,來個口訣:
四捨六入五考慮,五後非零則進一,五後皆零視奇偶,五前為偶應捨去,五後為奇則進一,不論數字多少位,都要一次修約成。
首先第乙個是Excel本身問題,你把它改成
"=ROUND(A1,X)-(MOD(A1*10^X,2)=0.5)*10^(-X)"
A1是正數的話能用,負數處理會出錯,捨棄。
第二個的話,改成
Function Tranvalue(rng As Double,number As Integer)As Double
TranValue=Round(rng,number)
End Function
也能用,但有限制,number不接受負數,也就是不能修約到個位數、十位數等。
注意:worksheet的round和vba的round是不一樣的哦,VBA的round才符合數值修約,但他有個缺點,只能修約到小數點後幾位,不能修約到十位百位等。捨棄。
第三個,試了下power query,也挺好用,可惜和vba的round一樣,不支援負數,捨棄。
最後公布答案,符合數值修約標準(GB/T 8170-2008),能處理正負數,結果正確,思想一致,並且還比較簡單操作的,可以這麼弄:
"=IF(MOD(ABS(A1*10^-X),2)=0.5,ROUNDDOWN(A1,-X),ROUND(A1,-X))"
A1就是待修約的數
X是修約到10的幾次方
-2是修約到10的-2次方,也就是小數點後2位,0.01
-1是修約到10的-1次方,也就是小數點後1位,0.1
0是修約到10的0次方,也就是個位
1是修約到10的1次方,也就是十位
2是修約到10的2次方,也就是百位
...以此類推
over
2樓:
不懂, 但是我的結果和你不一樣, 我在使用VBA的Round函式時得到了1.960~
版本Office 2016 64位專業增強版Excel的Round函式明確了是四捨五入, 而VBA的Round函式中有這樣一句話~
具體可以檢視
ROUND 函式
人體中到底有沒有丹田?
遠山 有形可見,無形不可見,所以有沒有根本搞不清啊,從解刨學上講是肯定沒有的。祖先講事情,喜歡用比喻,並不一定確有實物相對應。不理解這一點,根本看不懂古書。 CHARLIE 西樂裡美聲唱法的老師,也會提丹田發聲和丹田呼吸,包括健身訓練時,有時候也要丹田用力。丹田就是小肚子軟組織,在等距收縮發力時,配...
stop 中的 t 到底有沒有濁化?
MacMouth 濁化這個詞是錯誤的解讀 從這個詞的字面意思來講,那是將 t 配合聲帶振動,使之變 濁 可是配合聲帶振動不還是特特特麼?清子音與濁子音這個相對概念必須要拋棄掉,否則無法解釋 stop stp 為何有 sdp 的傾向 況且音標還不給 sdp 呢 子音 t d 的本質區別在於前者送氣強後...
顛球在足球訓練中到底有沒有用?
逍遙狐狸 顛球,作為個人訓練的方式方法之一,對於球性腳感肯定是有幫助的。但足球是乙個團隊專案,其實更重要的是整個團隊,一起協作配合將球送到對方球門為目標的遊戲。在這個前提下提高自己的球性腳感是必然的。我們回到顛球,這只是個人練習的方法之一,而且你是用什麼部位顛球也是非常重要的,腳背,腳內側,還是腳後...