西西河

主题:【原创】javascript字串mysql的float -- 铁手

共:💬11 🌺34
全看分页树展 · 主题
家园 【原创】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。

全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河