首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将浮点数存储为整型?

问是否将浮点数存储为整型?
EN

Stack Overflow用户
提问于 2010-09-30 22:33:18
回答 4查看 3.9K关注 0票数 0

在mySQL中存储浮点数的最佳数据类型是什么?

我能以某种方式将它存储为INT类型吗?

我认为VARCHAR是我最好的选择,但如果你们知道更好的方法,我将非常感谢。

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-30 22:36:46

我会使用Mysql Float类型。

票数 5
EN

Stack Overflow用户

发布于 2012-07-07 03:25:10

根据您存储的浮点数的类型,可以在此处找到有关MySQL数字类型的所有详细信息:

http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html

Decimal :对于货币,您应该使用,因为它很精确,并且在算术中不会出现奇怪的小数舍入。

INT:是的,您可以将浮点数存储为整数以提高性能。例如,货币可以存储为$19.56或1956,只要您在显示时始终使用/ 100,会计软件就会经常这样做。此外,只要在数据库之外除以10,000,000,就可以将纬度/经度存储为整数,322274063,-1109654800 = 32.2274063,-110.9654800。

/ DOUBLE:,当然还有long和double。当性能不是优先考虑因素或小数位数不同时,请使用它们。

SO规则:如果性能有问题,并且您知道小数位数的长度总是固定的,那么您可以很容易地存储一个整数来存储浮点数。

票数 7
EN

Stack Overflow用户

发布于 2010-09-30 22:38:11

为什么要将浮点型存储为整型?与编程语言一样,MySQL也有decimal和float类型。

我假设你有一个很好的理由。要将浮点型存储为整型,可以尝试以下几种方法:

  • 将该数字乘以10^n,其中n是要保留的有效位数,然后截断小数部分的其余部分。当你将其从数据库中取出时,将其转换为浮点数/小数并除以n。这需要一个足够大的int来存储被乘法后的值;在32位体系结构中,一个“本地”int可以存储高达20亿的值。
  • 将该数字拆分为整数部分和小数部分。这需要两个字段,但每个字段都可以有一个最大整数值,这样您就可以轻松地在hundred-millionths.

中获得精度

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3831603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档