ClickHouse/docs/zh/data_types/float.md
Ivan Blinkov 22f51f103c
WIP on docs/website (#3409)
* CLICKHOUSE-4063: less manual html @ index.md

* CLICKHOUSE-4063: recommend markdown="1" in README.md

* CLICKHOUSE-4003: manually purge custom.css for now

* CLICKHOUSE-4064: expand <details> before any print (including to pdf)

* CLICKHOUSE-3927: rearrange interfaces/formats.md a bit

* CLICKHOUSE-3306: add few http headers

* Remove copy-paste introduced in #3392

* Hopefully better chinese fonts #3392

* get rid of tabs @ custom.css

* Apply comments and patch from #3384

* Add jdbc.md to ToC and some translation, though it still looks badly incomplete

* minor punctuation

* Add some backlinks to official website from mirrors that just blindly take markdown sources

* Do not make fonts extra light

* find . -name '*.md' -type f | xargs -I{} perl -pi -e 's//g' {}

* find . -name '*.md' -type f | xargs -I{} perl -pi -e 's/ sql/g' {}

* Remove outdated stuff from roadmap.md

* Not so light font on front page too

* Refactor Chinese formats.md to match recent changes in other languages

* Update some links on front page

* Remove some outdated comment

* Add twitter link to front page

* More front page links tuning

* Add Amsterdam meetup link

* Smaller font to avoid second line

* Add Amsterdam link to README.md

* Proper docs nav translation

* Back to 300 font-weight except Chinese

* fix docs build

* Update Amsterdam link
2018-10-17 18:53:06 +03:00

1.8 KiB
Raw Blame History

Float32, Float64

浮点数

类型与以下 C 类型是相同的:

  • Float32 - float
  • Float64 - double

我们建议,如果可能的话尽量用整形来存储数据。比如,将一定精度的浮点数转换成整形,譬如货币金额或者毫秒单位的加载时间。

使用浮点数

  • 对浮点数进行计算可能引起四舍五入的误差。

    SELECT 1 - 0.9
    
    ┌───────minus(1, 0.9)─┐
    │ 0.09999999999999998 │
    └─────────────────────┘
    
  • 计算的结果取决于计算方式(处理器类型和计算机系统架构)

  • 浮点数计算可能出现这样的结果,比如 "infinity" Inf 和 "not-a-number" NaN)。对浮点数计算的时候应该考虑到这点。

  • 当一行行阅读浮点数的时候,浮点数的结果可能不是机器最近显示的数值。

NaN 和 Inf

相比于 SQLClickHouse 支持以下几种浮点数分类:

  • Inf 正无穷。

    SELECT 0.5 / 0
    
    ┌─divide(0.5, 0)─┐
    │            inf │
    └────────────────┘
    
  • -Inf 负无穷。

    SELECT -0.5 / 0
    
    ┌─divide(-0.5, 0)─┐
    │            -inf │
    └─────────────────┘
    
  • NaN 非数字。

    SELECT 0 / 0
    
    ┌─divide(0, 0)─┐
    │          nan │
    └──────────────┘
    

可以在ORDER BY 子句 查看更多关于 NaN 排序的规则。

来源文章