zoukankan      html  css  js  c++  java
  • 金额,重量,成绩不使用浮点数来表示,而使用整形

    金额、重量、成绩等数据库字段推荐使用int或bigint类型。

         通常我们数据库设计中金额,重量等涉及到小数位的字段会用float或decimal,mysql还可以用double,但往往每笔金额的计算我们只需要精确到分,重量精确到克,最佳的设计是用int型来代替浮点型,如果涉及到的数字比较大,超过int型的取值范围(-2,147,483,648~2,147,483,647),最大金额为21474836.47,即两千多万,或者2147483.647公斤,哪么我们可以用bigint,c#中使用long类型(9,223,372,036,854,775,808~9,223,372,036,854,775,807),最大金额92233720368547758.07,亿亿级,国家财政收入也就万亿,所以一般足够用了,如果都是正数,还可以用ulong,设想一下,如果超过ulong型该怎么处理,大家可以思考一下?

         使用int型来代替浮点数的好处是计算速度上int型要快很多,居于快多少与数量级有关,但以现在的计算机计算能力,一般系统大可忽略这个影响;使用int最大的好处是解决计算精度的问题,在涉及N条记录合计取整时浮点数会有偏差,在数据加减处理上也比较麻烦,举个例子:某个客户账户数据库余额123.2301元,我们在界面显示的时候只需要显示123.23元,如果客户消费123.23元,实际余额为0,但数据库中还有0.0001元,这样我们需要在代码中处理这多余的0.0001元,有些人会说写入时就把精度四舍五入处理好,但依然会涉及到精度处理以及与合计金额的偏差处理(多条记录四舍五入后与实际合计金额会有偏差),如果使用int型代替浮点型,输入时我们只要做一个格式化处理就可以。

  • 相关阅读:
    apipost如何设置断言
    接口文档生成详细教程
    接口测试的时候如何生成随机数据进行测试
    armbian用户指南
    仿「ONE · 一个」 的微信小程序
    [armbian_ubuntu] 设置中文环境
    realtek wifi驱动
    armbian 入门知识基础学习
    [Armbian] armbian-config设置
    内存型号介绍
  • 原文地址:https://www.cnblogs.com/television/p/9262021.html
Copyright © 2011-2022 走看看