2012-07-06 54 views
0

我在Excel電子表格中遇到了一些令人困惑的行爲。兩列,我們稱之爲A和B. A包含一個「時間小數」,例如0.15或0.30(十五或三十分鐘)。我需要將其轉換爲「正常小數」,如0.25或0.5。這些值來自表中的其他列。Excel中的行爲不一致(= MOD())

在我可以做我的轉換之前,我需要找出時間是否應該四捨五入到四分之一小時。我以爲我會用= MOD()來檢查「時間小數」* 100是否可以被15整除。

但是:我得到的結果不一致。在列AI有「時間十進制」,並在列BI具有式:

=MOD(A1*100,15) 

在下面的截圖中,我希望它在兩行給出0,但它不是: Spreadsheet Screenshot

據我所知,A1和A2中的數據是相同的。所有四個可見單元格的類型都是「Number」。

幕後有什麼事情我不知道?有沒有辦法強制正確的行爲?

+1

http://support.microsoft.com/kb/78113 – SeanC 2012-07-06 17:56:15

回答

1

最有可能的原因是第一個不完全是0.30,而是0.299999。這將使MOD(xx*100,15) 14.99999的結果顯示爲15.00,如果只顯示2位小數。

+0

我想到了,但增加小數點後返回預期結果:0.30000000000等 – Benmj 2012-07-06 17:16:09

+0

另外A1 * 100/15 = 2.0000000 – Benmj 2012-07-06 17:16:49

+0

@BPMJ嘗試添加一個公式:'= A1 = 0.3'並檢查它是否返回true。 – assylias 2012-07-06 17:20:38