|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
原帖由 子元女王 于 2010-3-10 17:38 发表
2003版没有这个问题
G/通用格式 不能和0,#等合作,不过可以和日期时间类代码放在一起,在2007版中,不知道怎么回事,与y,m,d,h,s,e,g,aaa等在一起,G/通用格式 就变成了读取+500毫秒以后的秒数 (未严格测试,只看 ...
继续猜想, 也许2007在这方面做了点小改动, 如果有日期时间类代码y,m,d,h,s,e,b,aaa等出现时,直接进入日期时间处理程序, 把原值先拆分成年月日时分秒等等,其中关于秒的数值仍然是浮点数,内存中就放在原先最初值所用的地址,而年月等其他数据占用新开辟的内存空间,这样要取值直接取就是了,如果代码中没有出现".0"部分,也就是没有毫秒部分,则一开始就给秒数再加上0.5,这样如果要取秒,直接取整就会是四舍五入后的数值。这个策略看上去不错,但是没考虑到“G/通用格式”也可以和日期时间放在一起,扫描了整个代码段,有日期类代码,但又没有".0",进入日期时间处理,且是增加500毫秒的,于是就造成了现在的情况。 |
|