python 解决数据库写入时float自动变为整数的问题

目录
  • 数据库写入时float自动变为整数问题
    • 问题描述
    • 问题解决方案
  • float所表示的范围

数据库写入时float自动变为整数问题

问题描述

今天用python插入数据到mysql时遇到个问题,明明数据库设置的字段数据类型是float,要存的数据也是float类型,但是存进去后就变成了整数了,比如0.98变成了1.

发现实现因为我创建表的sql语句有问题,因为使用Navicat直接导出的sql语句

表的sql语句如下

CREATE TABLE `traffic_and_weather` (
  `currentTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `expedite` float(4,0) NOT NULL,
  `congested` float(4,0) NOT NULL DEFAULT '0',
  `blocked` float(4,0) NOT NULL DEFAULT '0',
  `unknown` float(4,0) DEFAULT '0',
  `weather` int NOT NULL DEFAULT '0',
  PRIMARY KEY (`currentTime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

问题解决方案

问题就出在float(4,0)这里了,小数部分自动是0位,整数部分为4位。自然小数就没有了。所以可以把float(4,0)改成float。

float所表示的范围

**关于float 表示的数的范围的计算问题?**

float 在计算机中表示是32位 sign(1bit)+exponent(8)+fraction(23)

阶码用移码来表示,8位移码(偏移量为127) 本来应该可以表示-128~127,但是全0和全1被用来        表示特殊状态的指数

所以为-126~127. 这里为什么要使用127来作为偏移量,若使用128 则8位移码表示范围-127~126.由于表示一个大的正数

比一个小的负数更加重要所以127作为偏移量比较合适。

现在可以计算其表示范围了:

尾数部分的取值范围[1,2),所以最小负数-2*2^127 最大负数-1*2^(-126)

最小正数 1*2^(-126) 最大正数2*2^(127)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 数据类型强制转换的总结

    数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. Number类型的数据转换 强制转换为int 可以转换的数据类型 int 整型 float 浮点型 bool 布尔型 str 字符串(整型) 数据转换 # 整型(整型转换是原封不动的) print(int(10)) # 浮点型(浮点型转成整型按照退一法) print(int(10.999)) # 布尔型(布尔型只有两种值,转换成为整型也只有两种,True=1,False=0) print(int(Tru

  • python 如何将带小数的浮点型字符串转换为整数

    以下内容在python中完全可以接受: 1.将整数的字符串表示形式传递给 int 2.将float的字符串表示形式传递给 float 但是,如果你将float型的字符串传递给int将会得到错误. >>> int('5') 5 >>> float('5.0') 5.0 >>> float('5') 5.0 >>> int(5.0) 5 >>> float(5) 5.0 >>> int('5.0') T

  • Python浮点型(float)运算结果不正确的解决方案

    一.问题说明 以前对浮点数运行没有没有太在意.昨天同事要求把百分比结果保存到文件上,然后就以保存1位小数的形式给他保存了. 但是今天同事运行时问能不能统一以一位小数的形式保存,当时觉得很奇怪昨天就是以一位小数形式存的怎么还会提这种要求呢. 其给回的截图确实是部分是一位小数的,但一部分是很长的.查看代码都统一如下格式: # 使用round保留三位小数,然后乘以100,最后格式化为带百分号的字符串 rate=f"{round(x/y,3) * 100}%" 代码上没看出什么问题,直接运行确

  • Python float函数实例用法

    我们知道数字有很多种类型,比如整数.浮点数.在字符串值的讨论上,我们会需要用浮点值的形式,那么就需要函数来进行转换.float函数的功能正是如此,能够对其中的数值进行转换,下面我们就float函数的一系列内容带来详细的介绍. 1.说明 给定一个字符串值(包含浮点值),我们必须在Python中将其转换为浮点值.要将字符串值转换为float,我们可以使用float()功能. 2.语法 class float([x]) 3.参数 x -- 整数或字符串 4.返回值 返回浮点数. 5.实例 print(

  • python 解决数据库写入时float自动变为整数的问题

    目录 数据库写入时float自动变为整数问题 问题描述 问题解决方案 float所表示的范围 数据库写入时float自动变为整数问题 问题描述 今天用python插入数据到mysql时遇到个问题,明明数据库设置的字段数据类型是float,要存的数据也是float类型,但是存进去后就变成了整数了,比如0.98变成了1. 发现实现因为我创建表的sql语句有问题,因为使用Navicat直接导出的sql语句 表的sql语句如下 CREATE TABLE `traffic_and_weather` (  

  • 我用Python给班主任写了一个自动阅卷脚本(附源码)

    导语 幼儿园升小学,小学升中学,中学升高中.......... 每个人都要经历的九年义务教育:伴随的都是作业.随堂考.以及每个科目的大大小小的考试.当然小编被考试支配的恐惧以及过去了哈~除了学生考试的压力之外. 有调查发现,目前老师大量的时间被小型考试,如课堂测验.周测等高频次测验的批改客观题.计分.登分等占用,被迫压缩了备课.精准辅导的时间. 今天小编带大家做一款解放教师的自动阅卷系统. 几千张的答题卡扫描录入电脑阅卷系统,老师们只需打开电脑登陆,即可找到自己要批改的那道题. 大大提高了改卷效

  • 一步步教你用python给女朋友写个微信自动提醒的程序

    目录 前言 第一步:文本内容的确定 第二步:微信端发送消息的实现 第三步:定时任务的设置 总结 前言 事件背景是经常有很多琐碎的事情需要在某个时间点去做,光靠人力去记,容易出现偏差,尤其是对容易迷糊的选手. 所以动手写了一套代码,可以按需要通过微信发送消息,不论是给自己充当自动提醒的备忘录还是给其他人发送定时消息,都可以在这套代码的基础上实现. 首先放上最终成果示例: 图中的文字都是可以根据自身需要而进行修改的,所以文章中附上的代码也只是抛砖引玉,读者可以根据自身需要而进行调整.本篇文章会分三个

  • 解决Springboot项目启动后自动创建多表关联的数据库与表的方案

    熬夜写完,尚有不足,但仍在努力学习与总结中,而您的点赞与关注,是对我最大的鼓励! 在一些本地化项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表. 若要解决这类需求,其实现在已有不少开源框架都能实现自动生成数据库表,如mybatis plus.spring JPA等,但您是否有想过,若要自行构建一套更为复杂的表结构时,这种开源框架是否也能满足呢,若满足不了话,又该如何才能实现呢? 我在前面写过一篇 Activiti工作流学习笔记(

  • 解决python存数据库速度太慢的问题

    问题 在项目中遇到一个问题,需要从文本中读取三万条数据写入mysql数据库,文件中为用@分割的sql语句,但是在读取的过程中发现速度过慢,三万八千条数据需要220秒,问题代码片段如下: def read_to_mysql(filecata, targetDir): ''' 用来写入数据库,写入后会剪贴掉文件 filecata 为保存有文件地址的list,已去掉尾部的空格 :param filecata: 文件目录 :param targetDir: 要复制的目标目录 :return: ''' r

  • MongoDB安装使用并实现Python操作数据库

    一.MongoDB介绍 MongoDB 是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引. 二.安装MongoDB MongoDB安装很简单,无需下载源文件,可以直接用apt-ge

  • 跟老齐学Python之使用Python操作数据库(1)

    在上一讲中已经连接了数据库.就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立"表",什么是数据库的表呢?下面摘抄字维基百科对数据库表的简要解释,要想详细了解,需要看官在找一些有关数据库的教程和书籍来看看. 在关系数据库中,数据库表是一系列二维数组的集合,用来代表和储存数据对象之间的关系.它由纵向的列和横向的行组成,例如一个有关作者信息的名为 authors 的表中,每个列包含的是所有作者的某个

  • Python使用MySQLdb for Python操作数据库教程

    本文详细讲述了Python使用MySQLdb for Python操作数据库的方法,分享给大家供大家参考.具体如下: 一般来说网站就是要和数据库进行交互,否则什么都不用做了.今天我们就来分析一个叫MySQLdb的库,使用这个用来和MySQL数据库进行交互. 大家可以从这里获得这个库: http://sourceforge.net/projects/mysql-python 如果你不确定你的python环境里有没有这个库,那就打开python shell,输入 import MySQLdb,如果返

  • Python实现数据库编程方法详解

    本文实例讲述了Python实现数据库编程方法.分享给大家供大家参考.具体分析如下: 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是我在工作和学习中经验总结. 方法一:使用DAO (Data Access Objects) 这个第一种方法可能会比较过时啦.不过还是非常有用的. 假设你已经安装好了PYTHONWIN,现在开始跟我上路吧-- 找到工具栏上ToolsàCOM MakePy utilities,你会看到弹出一个Selec

  • Python建立Map写Excel表实例解析

    本文主要研究的是用Python语言建立Map写Excel表的相关代码,具体如下. 前言:我们已经能够很熟练的写Excel表相关的脚本了.大致的操作就是,从数据库中取数据,建立Excel模板,然后根据模板建立一个新的Excel表,把数据库中的数据写入.最后发送邮件.之前的一篇记录博客,写的很标准了.这里我们说点遇到的新问题. 我们之前写类似脚本的时候,有个问题没有考虑过,为什么要建立模板然后再写入数据呢?诶-其实也不算是没考虑过,只是懒没有深究罢了.只求快点完成任务... 这里对这个问题进行思考阐

随机推荐