最近自已用.Net在開發自訂控制項.. 其中一個控制項的功能.. 是要能夠自動將TextBox中的數字.. 依指定的小數位數.. 進行無條件進位、捨去或四捨五入.. 現在問題來了.. 若數字為正數沒有問題.. 但若數字是負數的話.. 我就不確定該怎麼進位或捨去了.. 不曉得有沒有人可以幫忙解答疑惑..
以下小數位數皆取到小數後二位..
-12.345 無條件進位= ?? (-12.34 or -12.35 ?)
-12.345 無條件捨去= ?? (-12.34 or -12.35 ?)
-12.345 四捨五入= ?? (-12.34 or -12.35 ?)
-12.344 四捨五入= ?? (-12.34 or -12.35 ?)
-12.346 四捨五入= ?? (-12.34 or -12.35 ?)

4 則留言:
好久沒留言了~想不到兩隻魚的家變這麼漂亮了。。。
查了一下~若數軸向右增加時,以5為臨界點。左邊的捨去,右邊的進位。。。
(-12.35)...(-12.346)(-12.345)(-12.344)...(-12.34)
不知對不對~ Alan參考看看吧。。。
-12.345 無條件進位= -12.34
-12.345 無條件捨去= -12.35
-12.345 四捨五入= -12.34
-12.344 四捨五入= -12.34
-12.346 四捨五入= -12.35
>_< 小螃蟹不懂。。
為什麼???
-12.345 無條件捨去= -12.35 <> -12.34
-12.345 四捨五入= -12.34 <> -12.35
樓上兩位的二種解法就是我所困擾的.. 一開始我也是以c君的解法去處理..
進位就是數值變大.. 捨去就是數值變小..
所以
-12.345進位就是-12.34 (因為-12.34比-12.345大)
-12.345捨去就是-12.35 (因為-12.35比-12.345小)
-12.345四捨五入-12.34
但是又覺得怪怪的.. 四捨五入是以5為臨界點..
進位應該是往數字比較大的方向進位..
也就是說先忽略負號.. 直接對數字做進位或捨去..
所以又有另外一種解法.. 就是H君的解法..
-12.345進位就是-12.35
-12.345捨去就是-12.34
-12.345四捨五入-12.35
我用Excel的公式去驗證.. 結果與第二種解法一樣..
可是我又覺得第一種比較正確.. 所以.. 還在考慮要怎麼處理這一段..
目前進度暫時停擺..
等有空再繼續..
張貼留言