浮点数

Python数据类型之数字

眉间皱痕 提交于 2019-11-28 11:56:25
数字(数值) 整数 :123 (int型) 浮点数: 0.25(带小数点的数字即为浮点数,Float型) 布尔值:False,True(即0和1,bool型) 复数 (暂无资料,complex型) 整数的计算   在Python中,可对整数执行加(+),减(-),乘(*),除(/)的运算。    加法   坑* print(0.1+0.2) >>> 0.30000000000000004   #书上看的,暂时无解    减法   有一种减法输出结果为-0。忘了在什么情况下发生的了。   乘法   一个*代表乘法运算 ,整数乘以整数,结果为int型 a = 2*2 print(type(a))   整数乘以浮点数,结果为Float型 a = 0.5*2 print(type(a))    两个**表示乘方运算 print(2**3) #2的3次方 print(3**3) #3的3次方 >>>8 >>>27   Python还支持运算次序,用括号来修改。 a = 2+3*4 #2+12 b = (2+3)*4 #5*4 c = (2+3)**4 #5的4次方 print(a) print(b) print(c) >>>14 >>>20 >>>625    坑* print(3*0.1) >>> 0.30000000000000004   #书上看的,暂时无解    除法   普通除法(

科学计数法转发成浮点数表示

[亡魂溺海] 提交于 2019-11-28 07:35:23
private Double scientDouble; public Double getScientDouble() { return scientDouble; } public void setScientDouble(Double scientDouble) { this.scientDouble = scientDouble; } /** * @description:给Double类型赋值过大,或者过小时产生科学计数法. * 把科学计数法转换成浮点数表示 * @author: * @date: 2019/8/21 * @param null: * @return: */ public static String scientificCountToFloat(Double scientStr){ System.out.println(scientStr); String str[]=scientStr.toString().split("-"); for (int i = 0; i <str.length ; i++) { System.out.println(str[i]); } NumberFormat nf = NumberFormat.getInstance(); //设置小数位数,通过算出科学计数法的小数位数,然后设置小数位数 if (str.length>1

机器码相关

廉价感情. 提交于 2019-11-28 05:36:26
机器数:一个数在计算机中的二进制表示形式 真 值:将带符号位的机器数对应的真正数值称为机器数的真值。 定点数:参与运算的数的小数点位置固定不变。 浮点数:一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到 移码(增码):在机器中表示一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码,阶码指明了小数点在数据中的位置。引入移码的目的是为了保证浮点数的机器零为全0。 正数的反码=原码,负数的反码=符号位不变+其余每一位按位取反。 正数的补码=原码,负数的补码=反码+1 正负数的移码=将其补码的符号位取反 0000 0001 1 原码 0000 0001 反码 0000 0001 补码 1000 0001 移码 1000 0001 -1 原码 1111 1110 反码 1111 1111 补码 0111 1111 移码 来源: https://www.cnblogs.com/mrerror/p/11394420.html

Java中解决浮点数精度的问题

夙愿已清 提交于 2019-11-27 18:18:38
问题描述 在项目中用Java做浮点数计算时,发现对于4.015*100这样的计算,结果不是预料中的401.5,而是401.49999999999994。如此长的位数,对于显示来说很不友好。 问题原因:浮点数表示 查阅相关资料,发现原因是:计算机中的浮点数并不能完全精确表示。例如,对于一个double型的 38414.4 来说,计算机是这样存储它的: 转成二进制:1001011000001110.0110011001100110011001100110011001100 转成科学计数法:1.0010110000011100110011001100110011001100110011001100×2^15 double型编码格式是这样的: double 符号位1位 阶码11位 尾数52位 符号位:正数统一是0 阶码:15是正数,因此最高位是1,最低位减1,为10000001110 尾数:去掉最高位默认的1,为0010110000011100110011001100110011001100110011001100 组合起来,最终得到的编码是:0 10000001110 0010110000011100110011001100110011001100110011001100 从这里可以看出来,主要原因在于二进制编码使得小数部分无法完全精确表示,例如0.4 = 0.25 + 0.125 +

基本数据类型

。_饼干妹妹 提交于 2019-11-27 14:16:40
数字类型及操作 整数类型 与数学中整数的概念一致 - 可正可负,没有取值范围限制 - pow(x,y)函数:计算 x y ,整数无限制,想算多大算多大 >>> pow(2,100) 1267650600228229401496703205376 >>> pow(2,pow(2,15)) 1415461031044954789001553…… 4种进制表示形式 - 十进制:1010, 99, -217 - 二进制,以0b或0B开头:0b010, -0B101 - 八进制,以0o或0O开头:0o123, -0O456 - 十六进制,以0x或0X开头:0x9a, -0X89 浮点数类型 - 带有小数点及小数的数字 - 浮点数取值范围和小数精度都存在限制,但常规计算可忽略 - 取值范围数量级约-10^307 至10^308 ,精度数量级10^-16 0.1 53位二进制表示小数部分,约10 -16 0.00011001100110011001100110011001100110011001100110011010 (二进制表示) 0.1000000000000000055511151231257827021181583404541015625 (十进制表示) 0.1 + 0.2 二进制表示小数,可以无限接近,但不完全相同 结果无限接近0.3,但可能存在尾数 - round(x, d)

zabbix监控项整理Items-key

时光总嘲笑我的痴心妄想 提交于 2019-11-27 13:17:30
agent.hostname:hostname,字符串 agent.ping:可用性检查,可用返回1;不可用返回空 agent.version:agent程序的版本,返回字符串 kernel.maxfiles:查询内核参数,系统中允许的文件描述符的最大数量。每个打开的文件、 套接字和管道, 都会占用一个文件描述符,返回整数 kernel.maxproc:系统支持的最大进程数量,返回整数 net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]:检查DNS服务是否正常,正常返回1,异常返回0 net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]:进行 DNS查询并返回查询记录,返回字符串 net.if.in[if,<mode>]:网卡入口流量,返回整数 net.if.list:网卡接口信息,返回txt文本 net.if.out[if,<mode>]:网卡出口流量,返回整数 net.if.total[if,<mode>]:网卡进出流量和,返回整数 net.tcp.listen[port]:检查指定TCP端口是否开启,1开启;0关闭 net.tcp.port[<ip>,port]:检查是否可连接到指定TCP端口,1可连接;0不可连接 net.tcp.service

OpenCV中的cvRound()、cvFloor()、 cvCeil()函数

烂漫一生 提交于 2019-11-27 12:11:52
版权声明:本文为CSDN博主「空晴拜小白」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/sinat_36264666/article/details/78849125 函数cvRound,cvFloor,cvCeil 都是用一种舍入的方法将输入浮点数转换成整数: cvRound():返回跟参数最接近的整数值,即四舍五入; cvFloor():返回不大于参数的最大整数值,即向下取整; cvCeil():返回不小于参数的最小整数值,即向上取整; //---------------------------------------------------------- //功能:cvRound(), cvFloor(), cvCeil()函数讲解。 // cvRound():返回跟参数最接近的整数值,即四舍五入; // cvFloor():返回不大于参数的最大整数值,即向下取整; // cvCeil():返回不小于参数的最小整数值,即向上取整; //---------------------------------------------------------- #include <opencv2/opencv.hpp> using namespace std; int main() { //--

1.toString()相关

梦想与她 提交于 2019-11-27 12:07:55
1toString() //报错,语法错误 1.toString() //报错,JS引擎无法确定这里的.是什么意思,是点运算符(对象方法)还是浮点数? 1…toString() //成功,运算结果"1" 解析: 第二个点被视为点运算符,前面的是浮点数。 1.0.toString() //成功,运算结果"1" 解析: 第二个点被视为点运算符,前面的是浮点数。 1 .toString() //成功,运算结果"1" 解析: 用空格和后面的.toString()隔开, 把前面的当成运算式处理 1+2.toString() //报错,JS引擎无法确定这里的.是什么意思,是点运算符(对象方法)还是浮点数? 1+2 .toString() //成功,运算结果"12" 解析: 用空格和后面的.toString()隔开, 把前面的当成运算式处理 (1+2).toString() //成功,运算结果"3" 解析: 括号内部的先进行算法运算,在进行类型转换 (1)+(2).toString() //运算结果"12" 解析: 括号内部进行类型修改并将数字n转换为字符串“n “,在进行拼接,然后再应用toString方法。 (1)+(2)+0 .toString() //成功,运算结果"30" 解析: 如果有多个+号,且不包含中括号与"“的情况下,则把最后一个加号之前的进行数学运算(不管他有没有被括号包住)

Javascript浮点数运算及比较代码收集整理

女生的网名这么多〃 提交于 2019-11-27 11:41:18
以下代码转自: http://segmentfault.com/a/1190000000324193 浮点数加法: /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 ** 调用:accAdd(arg1,arg2) ** 返回值:arg1加上arg2的精确结果 **/ function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)); if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) *