V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lowzoom
V2EX  ›  程序员

小数点前后两部分拆成两个变量,变量名后缀用啥好

  •  
  •   lowzoom ·
    lowZoom · 2016-07-04 19:55:50 +08:00 · 3174 次点击
    这是一个创建于 3039 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设有一个变量:

    double height = 12.34;
    

    把 12 和 34 分别取出来放进两个 int 变量里,两个变量应该用什么后缀好?


    我现在是用

    int heightInt = 12;
    int heightFrac = 34;
    

    小数点后的命名感觉还好,但小数点前的命名感觉很别扭,原因有:

    • 一个 int 变量叫 Int ,有点看不出是干嘛的
    • 如果不是 int 类型,假设是 byte 类型,一个 byte 变量叫 Int ,就更奇怪了

    请教下大家有没有更好的意见?

    23 条回复    2016-07-05 11:48:09 +08:00
    andreby
        1
    andreby  
       2016-07-04 19:59:41 +08:00 via Android
    prefix suffix
    lowzoom
        2
    lowzoom  
    OP
       2016-07-04 20:01:13 +08:00
    @andreby 太长,不简洁
    azurefire
        3
    azurefire  
       2016-07-04 20:04:31 +08:00 via Android   ❤️ 1
    http://math.stackexchange.com/questions/64042/what-are-the-numbers-before-and-after-the-decimal-point-referred-to-in-mathemati

    没有上下文的话,貌似没有更简单的命名方式,可以考虑从实际用途出发来命名。
    vghdjgh
        4
    vghdjgh  
       2016-07-04 20:05:31 +08:00
    heightInteger
    heightDecimal

    fraction 的意思是分数
    lowzoom
        5
    lowzoom  
    OP
       2016-07-04 20:57:22 +08:00
    @azurefire characteristic , mantissa 。。。还真没在什么代码里见过这两个单词,又长又难缩写,居然连歪果仁都没好答案,尴尬了。
    BTW ,我是在写一个通用序列化方法的时候碰到这问题,所以也没有具体的语义语境,就是需要通用地称呼这两个部分。
    loading
        6
    loading  
       2016-07-04 21:03:08 +08:00 via Android
    每次用 int(height)获取,听说牛逼的编译器会处理的…
    lowzoom
        7
    lowzoom  
    OP
       2016-07-04 21:10:54 +08:00
    @vghdjgh 词义上你是对的,但这两个单词在编程语言里普遍被用在表示数据类型上,如果再用回到变量命名里,感觉反而会降低代码的可读性(会让人认为是在处理类型 cast 的问题)
    Goooogle
        8
    Goooogle  
       2016-07-04 21:11:59 +08:00
    或者学 Version 的命名方式, major.minor ?
    zhujinliang
        9
    zhujinliang  
       2016-07-04 21:12:03 +08:00 via iPhone
    后面那个叫 Tail
    前面的要不对应着叫 Head ……
    lowzoom
        10
    lowzoom  
    OP
       2016-07-04 21:16:09 +08:00
    @loading 我想提问的其实是一个通用的编程问题,无关乎语言,这种情况我在写 python 的时候也碰过,这时候牛逼的编译器表示也帮不上忙了。。
    lowzoom
        11
    lowzoom  
    OP
       2016-07-04 21:19:19 +08:00
    @Goooogle
    @zhujinliang
    这两个有参考价值, MARK
    Mutoo
        12
    Mutoo  
       2016-07-04 22:51:12 +08:00
    fraction 是分数的意思,但是 fraction part 指的就是实数中的小数部分,定义为

    x > 0: frac(x) = x - floor(x)
    x <= 0: frac(x) = x - ceil(x)

    https://en.wikipedia.org/wiki/Fractional_part
    cxbats
        13
    cxbats  
       2016-07-04 23:38:19 +08:00
    car cdr? 不过好像是用在分数上的...
    heyang
        14
    heyang  
       2016-07-04 23:43:57 +08:00
    @andreby
    @lowzoom 我一般就用这俩,嫌太长了截啊, pre suf
    likuku
        15
    likuku  
       2016-07-04 23:44:40 +08:00
    num_lift_dot
    num_dot_right
    likuku
        16
    likuku  
       2016-07-04 23:45:42 +08:00
    num_more_than_zero
    num_less_than_zero
    likuku
        17
    likuku  
       2016-07-04 23:51:18 +08:00
    纠错:
    num_part_more_than_zero_or_equal_zero
    num_less_than_one

    只考虑人类阅读性便利
    cxbig
        18
    cxbig  
       2016-07-05 00:35:25 +08:00
    小数部分一般用 fraction 或 decimal
    用 IDE 根本不在乎有多长,可读性才是第一位
    20150517
        19
    20150517  
       2016-07-05 00:44:13 +08:00
    只有我一个觉得,你编个变量名都要这么纠结,你怎么写程序写下来?
    chiv2
        20
    chiv2  
       2016-07-05 00:53:21 +08:00
    dotLeft, dotRight
    jamesxu
        21
    jamesxu  
       2016-07-05 07:23:20 +08:00 via iPhone
    digitsBeforeDot , digitsAfterDot
    jeffersonpig
        22
    jeffersonpig  
       2016-07-05 09:03:11 +08:00
    现在连变量命名都要发个贴讨论一下了嘛……好吧其实我也经常陷入变量命名的选择困难境地
    mmmkik
        23
    mmmkik  
       2016-07-05 11:48:09 +08:00 via iPad
    data data2 最好的两个变量名
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5676 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:28 · PVG 09:28 · LAX 18:28 · JFK 21:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.