zoukankan      html  css  js  c++  java
  • 数字,日期,时间

    1、我们想将一个浮点数取整到固定的小数位

    使用内建的round(value,ndigits)即可:

    1 >>> round(1.23,1)
    2 1.2
    3 >>> round(1.27,1)
    4 1.3
    5 >>> round(-1.27,1)
    6 -1.3
    7 >>> round(1.1231237,3)
    8 1.123
    9 >>> 

    ndigits可以是负数,这样的情况下会相应的取整到十位,百位千位等,如:

     1 >>> round(1.1231237,3)
     2 1.123
     3 >>> a = 1231231
     4 >>> round(a,-1)
     5 1231230
     6 >>> round(a,-2)
     7 1231200
     8 >>> round(a,-3)
     9 1231000
    10 >>> 

    对值的输出时,不能把取整与格式化输出混为一谈,如果只是让数值以固定的位数输出,一般不用round():

    1 >>> x = 1.23456
    2 >>> format(x,'0.2f')
    3 '1.23'
    4 >>> format(x,'0.3f')
    5 '1.235'
    6 >>> 'value is {:0.3f}'.format(x)
    7 'value is 1.235'

    执行精确的小数运算,我们先来看下面的小例子:

    1 >>> a = 4.2
    2 >>> b = 2.1
    3 >>> a + b
    4 6.300000000000001
    5 >>> (a + b) == 6.3
    6 False
    7 >>> 

    居然是False,这些误差实际上是底层CPU的浮点运算单元和IEEE754浮点运算术标准的一种特性,那么如何避免这样的误差,得到更高的精度呢(会牺一点性能),可以使用decimal模块

     1 >>> from decimal import Decimal
     2 >>> a = Decimal(4.2)
     3 >>> b = Decimal(2.1)
     4 >>> a + b
     5 Decimal('6.300000000000000266453525910')
     6 >>> print(a + b)
     7 6.300000000000000266453525910
     8 >>> a = Decimal('4.2')
     9 >>> b = Decimal('2.1')
    10 >>> a + b
    11 Decimal('6.3')
    12 >>> print(a + b)
    13 6.3
    14 >>> (a + b) == 6.3
    15 False
    16 >>> (a + b) == Decimal('6.3')
    17 True
    18 >>> 

    注意引号

     时间转换

    #_*_coding:utf-8_*_
    import time
    import datetime
     
    print(time.clock()) #返回处理器时间,3.3开始已废弃
    print(time.process_time()) #返回处理器时间,3.3开始已废弃
    print(time.time()) #返回当前系统时间戳
    print(time.ctime()) #输出Tue Jan 26 18:23:48 2016 ,当前系统时间
    print(time.ctime(time.time()-86640)) #将时间戳转为字符串格式
    print(time.gmtime(time.time()-86640)) #将时间戳转换成struct_time格式
    print(time.localtime(time.time()-86640)) #将时间戳转换成struct_time格式,但返回 的本地时间
    print(time.mktime(time.localtime())) #与time.localtime()功能相反,将struct_time格式转回成时间戳格式
    #time.sleep(4) #sleep
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将struct_time格式转成指定的字符串格式
    print(time.strptime("2016-01-28","%Y-%m-%d") ) #将字符串格式转换成struct_time格式
     
    #datetime module
     
    print(datetime.date.today()) #输出格式 2016-01-26
    print(datetime.date.fromtimestamp(time.time()-864400) ) #2016-01-16 将时间戳转成日期格式
    current_time = datetime.datetime.now() #
    print(current_time) #输出2016-01-26 19:04:30.335935
    print(current_time.timetuple()) #返回struct_time格式
     
    #datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
    print(current_time.replace(2014,9,12)) #输出2014-09-12 19:06:24.074900,返回当前时间,但指定的值将被替换
     
    str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #将字符串转换成日期格式
    new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天
    new_date = datetime.datetime.now() + datetime.timedelta(days=-10) #比现在减10天
    new_date = datetime.datetime.now() + datetime.timedelta(hours=-10) #比现在减10小时
    new_date = datetime.datetime.now() + datetime.timedelta(seconds=120) #比现在+120s
    print(new_date)

  • 相关阅读:
    Loadrunner将字符串存为参数
    loadrnner添加C语言代码的几种方式
    Jmeter分布式
    Java jmx的使用
    Jmeter关联之正则表达式提取器(完整版)
    性能测试基础概念
    Jmeter实现百分比业务比例
    js闭包与java内部类
    程序员的足球
    虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案
  • 原文地址:https://www.cnblogs.com/zcx-python/p/5573956.html
Copyright © 2011-2022 走看看