主题:【原创】javascript字串mysql的float -- 铁手
随手记个帐,供以后参考,也供有需要者参考。
最近改程序,碰到两个奇怪的问题,一个是和javascript 的 string 有关,一个是和 mysql的float有关。
先是javascript中的string。比如一个 var str="abcdefg" 这样的一个字符串,为了获得位置3处的字符值,按照以前的语言习惯,很自然的就开始用str[3]的方式,意想不到的是,在firefox,ie8工作很正常,但是在旧版ie中不行。规矩的做法,应该是用 charAt(3) 函数来获得相关值。实在是不明白为什么不能直接用[]来获取,而非得用 charAt()这样的,我觉得是大题小做的方式。新版的浏览器似乎承认这个做法了。将来为保险起见,还是应该用 charAt()。
再一个就是mysql中的float类型的字段。想当然的以为精度够高,用来作为index可以很好解决一个问题。结果,排序是可以,数值大小的比较就出现了问题。追究下去,给我的感觉是,存储的内容大小还是有差别,但是选择语句给出结果的时候,却是相同的。乘以一个大的整数,比如1百万,可能就能看出差异来。关于float类型的不可靠,在mysql的文档中实际上有说明,但是没注意到,被忽略了。按照文档说明,用decimal可以保证精确的值,但是内容保存方式和flaot不同,大概会增加不少内部操作,影响性能。
以后记得,能避免float尽可能避免,不能避免的情况下,用decimal。
- 相关回复 上下关系8
🙂【原创】javascript字串mysql的float
🙂可以开个类似于WIKI的维护清单的板块 liuyanzhen 字0 2011-02-08 10:50:32
🙂字符串主要是由于unicode的关系 3 ymud 字195 2011-01-20 15:56:47
🙂太正确了,取值不同,字节码和字符,哈哈 liuyanzhen 字0 2011-02-08 10:50:22
🙂charAt(3)则是第4个字符 大溪水 字193 2011-01-21 07:24:00
🙂的确是有这个问题,不知道现在是不是统一了 铁手 字276 2011-01-20 16:14:23
🙂float应该尽量避免 zllwy 字48 2011-01-20 15:01:28
🙂【原创】多台服务器之间的cross connect 10 铁手 字1110 2011-01-20 14:54:02