精华内容
下载资源
问答
  • 问题如图所示: 小数的小数点前面的0不显示 解决方法: windows 系统 设置 区域和语言 把零起显示设置改成0.7确定就可以

     

    问题如图所示:

    小数的小数点前面的0不显示

     

     

    解决方法:

    windows 系统 设置  区域和语言

    把零起显示设置改成0.7确定就可以

     

    展开全文
  • 如题,打算在VB.net 中用SQL语句动态创建具有单精度和双精度字段的表,但只有int数据类型能用,创建出来默认是长整型的,用real和float或single和double都报错.哪位大虾支个招. Dim Cre As String = "Create Table...
  • 1.背景:  在用arcmap导入shp数据到数据库的时候,发布服务... 默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ...

    1.背景:

        在用arcmap导入shp数据到数据库的时候,发布服务后服务查询400,querycode 失败,日志查看报错截图入下:

    2.原因:

    经排除并不是数据库环境问题而是关于数据转换的原因,

        默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误;

     

       从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。从 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出

    numeric这个的精度低 所以才会报错

    如:在arcmap或者shp中原本类型为双精度类型如下图所示

     

    导入数据库后会变为numeric类型,发生转换时进度缺失

    最终用numeric类型的数据发服务的时候可能会报错

    3.解决办法:

    只需要把数据库里面的numeric类型字段改为 float类型即可

    修改后保存不了时,点击工具--选项---更改时间和阻止保存要求重新创建表的更改

    保存后,重新查询即可成功,不需要重新发布服务

    4.总结,所有的bug都是有哈数的,存在既有原因,需要耐心找出原因

     

    将不定期更新资源,欢迎持续关注


    想获得更多的学习知识请关注微信公众号:西北码农或扫下方二维码

    展开全文
  • 使用的是DBF数据,查询了网上的资料,如果不使用BDE,最好的办法就是用现成的控件,所以下载了TDBF控件的最新版本6.91,使用上感觉不错,但现在发现一个问题,就是如果字段的数据类型是双精度的,那么显示的时候根本...
  • 语句select * form tb1的查询结果是将数据库中的表tb1提出来放入dataview控件中显示,其中有13个字段双精度,在数据库中它们的小数点后有9位之多,如何采用统一的办法将这13个字段的小数点保留4位显示在控件...
  • 时 间:2007-11-7 10:17:04 作 者:LucasLynn 摘 要:在近日几个帖子里面,和QQ群的讨论里面,我发现很多网友都遇到的问题都是因为不恰当地使用了单精度/双精度数值。因此想专门就这个话题谈一下。...

    时 间:2007-11-7 10:17:04
    作 者:LucasLynn
    摘 要:在近日几个帖子里面,和QQ群的讨论里面,我发现很多网友都遇到的问题都是因为不恰当地使用了单精度/双精度数值。因此想专门就这个话题谈一下。
    正 文:

    前言

      单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储。这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值。但是与此同时,他也完全符合科学计算中对于数值的观念:

      当我们比较两个棍子的长度的时候,一种方法是并排放着比较一下,一种方法是分别量出长度。但是事实上世界上并不存在两根完全一样长的棍子,我们测量的长度精度受到人类目测能力和测量工具精度的限制。从这个意义上来说,判断两根棍子是否一样长丝毫没有意义,因为结果一定是False,但是我们可以比较他们两个哪个更长或者更短。这个例子很好地概括了单精度/双精度数值类型的设计初衷和存在意义。

      基于上述认识,单精度/双精度数值类型从一开始设计的时候,就不是一个准确的数值类型,他只保证在他这个数值类型的精度之内是准确的,精度之外则不保证,比方说,一个数值5.1,很可能存储在单精度/双精度数值中的实际值是5.100000000001或者5.09999999999999。导致这个现象的原因我们可以通过两种方式来解释:

    简单的解释方法:

      你可以尝试在任何一个控件的属性面板中,设定他的宽度为:3.2CM,当你输入完毕后,你会发现值自动变成了3.199cm,无论你怎么改,你都无法输入3.200CM,因为实际上在电脑中存储的并不是CM为单位的数值,而是“缇”为单位的数值,而“缇”和CM之间的比值,是个很难被除尽的数,因此你输入完毕后,电脑自动转换成了最接近的“缇”值,然后再转换成厘米显示到属性面板上,这一乘一除,两次四舍五入,误差就出来了。单精度/双精度也是类似的原理,其实在二进制存储的时候,单精度/双精度都采用了类似相近分数的方法,而这样的存储是不可能做到准确的。

    深入的解释方法:

      让我们来看看我们存储到数字介质中的单精度/双精度值到底是怎么样的,我们使用如下代码对单精度类型进行一个解剖:

    Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)


    Public Sub floatTest()
    Dim dblVar As Single

    dblVar = 5.731 / 8
    dblOutput dblVar

    dblVar = dblVar * 2
    dblOutput dblVar

    dblVar = dblVar * 2
    dblOutput dblVar

    dblVar = dblVar * 2
    dblOutput dblVar

    dblVar = dblVar * 2
    dblOutput dblVar

    dblVar = dblVar * 2
    dblOutput dblVar

    End Sub

    Public Sub dblOutput(ByVal dblVar As Single)
        Dim bytVar(3) As Byte
        Dim i As Integer, j As Integer
        Dim strVar As String

        CopyMemory ByVal VarPtr(bytVar(0)), ByVal VarPtr(dblVar), 4
        strVar = dblVar & ": "
        For i = 3 To 0 Step -1
            For j = 7 To 0 Step -1
                strVar = strVar & (bytVar(i) And 2 ^ j) / 2 ^ j
            Next j
            strVar = strVar & " "
        Next i
        Debug.Print strVar

    End Sub

      运行后我们得到输出结果(输出格式为高位左,低位右):

    .716375: 00111111 00110111 01100100 01011010
    1.43275: 00111111 10110111 01100100 01011010
    2.8655: 01000000 00110111 01100100 01011010
    5.731: 01000000 10110111 01100100 01011010
    11.462: 01000001 00110111 01100100 01011010
    22.924: 01000001 10110111 01100100 01011010

      这里,我们把单精度类型转化成了二进制数据输出,这里我们看到,虽然这六个数字完全不同,但是他们的二进制存储惊人地相似,我们看到红色标记部分,每次都是加1,事实上,单精度数据类型使用从高位开始第1位作为正负标记位(绿色),第2位到第9位,是一个跨字节的有符号字节类型数据,这个数值决定了小数点移动的方向和位数(红色),第10位到32位保存一个整数(蓝色)在存储过程中,电脑首先把输入的值不断移位(乘除2)直到这个数的整数部分占用了全部24位的整数位,然后把移动的位数写入浮点部分(红色),而移位后的结果写入整数部分(蓝色和绿色),小数部分则舍弃。求值的时候则是反向过程,先根据正负位和整数位求值,然后根据红色部分的整数来进行移位(乘除2的次方),最终才是我们得到的单精度数值。双精度数值也是同样原理,只是位数更多而已。

      通过解剖单精度数值的二进制存储格式,我们可以清楚看到,实际上单精度/双精度的存储,都要通过乘法和除法,其中必有舍入,如果恰好你的数值在除法中被舍入了,那么你赋的初值就很可能与你最终存储的值不完全相同,其中的微小差异,并不与单精度/双精度的设计目标相违背。

      当我们在数据库中或者VBA代码中使用一个单精度/双精度数值的时候,也许你从界面上看不到区别,但是在实际的存储中,这个差别却真真切切地就在那里,当你对其进行相等比较的时候,系统只是简单地作二进制的比较,界面上无法体现的微小差异,在二进制比较面前却无处遁形,于是,你的等于比较返回了一个意料之外的False。

    结束语

      通过本文,我们介绍了单精度/双精度数据类型的实质以及其特点(优点和缺点),通过比较和解剖我们了解到单精度/双精度实际上存储的是一个近似值,浮点的特性决定了他可以存储非常小的数,也可以存储极大的数,他的数据精度并不是一个绝对值,而是存储值的百分比,如果你存储10的100次方,误差就可能是10的80次方,如果你存储10的-100次方,误差就可能是10的-120次方。因此单精度/双精度数据类型不能进行相等的比较(或数据库关联)。

      如果你需要进行等值比较或关联,那么有以下几种方案:

    1、使用专为准确度而设计的货币类型。
    2、使用整数类型存储,代码中移位。
    3、某些特定情况下可以用文字存储。

    展开全文
  • 不幸的是,我们生活在一个不完美的世界中,因此,作为iOS开发人员,您可能需要使用不总是具有相同类型的字段来解码JSON。 Something like this 像这样 { "movies": [ { "title": "Start Trek: Generations","vote":...

    js json串解码

    Codable provides an elegant and declarative way of decoding a JSON in Swift. We just need to define a Type that matches the structure of the JSON.

    Codable提供了一种在Swift中解码JSON的优雅且声明式的方式。 我们只需要定义一个与JSON结构匹配的Type。

    Unfortunately, we don’t live in a perfect world so as an iOS Developer, you could need to decode a JSON with a field that doesn’t always have the same type.

    不幸的是,我们生活在一个不完美的世界中,因此,作为iOS开发人员,您可能需要使用不总是具有相同类型的字段来解码JSON。

    Something like this

    像这样

    {
    "movies": [
    {
    "title": "Start Trek: Generations","vote": 6.6
    },
    {
    "title": "Start Trek: First Contact","vote": "7.6"
    }
    ]
    }

    As you can see the vote field sometimes contains a Double

    如您所见, vote字段有时包含一个Double

    "vote": 6.6

    and sometimes a String.

    有时是String

    "vote": "7.6"

    This is an error from who is providing the JSON but sometimes you just need to deal with it. So here’s a quick solution to solve this problem using Codable.

    这是谁提供JSON的错误,但有时您只需要处理它即可。 因此,这里是使用Codable解决此问题的快速解决方案。

    电影结构 (The Movies struct)

    First of all, let’s define a Swift struct to match the JSON structure.

    首先,让我们定义一个Swift结构以匹配JSON结构。

    struct Movies: Decodable {    let movies: [Movie]
    struct Movie: Decodable {
    let title: Stringlet vote: 🤔🤔🤔
    }
    }

    Good, now we need to figure out which type to use for the vote field!

    好,现在我们需要弄清楚vote字段要使用哪种类型!

    Since we know that it could contain a String or a Double we can define an Enum for that.

    因为我们知道它可以包含一个String或一个Double我们可以为此定义一个Enum。

    StringOrDouble枚举 (The StringOrDouble Enum)

    Here’s the core idea of this article. This enum is a Decodable Type that can match a string or a double found in the JSON.

    这是本文的核心思想。 此枚举是可Decodable类型,可以匹配JSON中的stringdouble Decodable型。

    enum StringOrDouble: Decodable {
    case string(String)
    case double(Double)
    init(from decoder: Decoder) throws {
    if let double = try? decoder.singleValueContainer().decode(Double.self) {
    self = .double(double)
    return
    } if let string = try? decoder.singleValueContainer().decode(String.self) {
    self = .string(string)
    return
    } throw Error.couldNotFindStringOrInt
    } enum Error: Swift.Error {
    case couldNotFindStringOrInt
    }
    }

    它是如何工作的? (How does it work?)

    The Enum defines 2 cases each one with an associated value.

    枚举定义2个案例,每个案例都有一个关联的值。

    The string case will contain a String value. And the double case will contain… well a Double.

    string大小写将包含一个String值。 并且double大小写将包含…… Double

    case string(String)
    case double(Double)

    Next, we provide a custom init which reads the value from the JSON and try to convert it first into a Double.

    接下来,我们提供一个自定义的init ,它从JSON读取值,然后尝试首先将其转换为Double

    If the conversion succeeds then we get a value of type StringOrDouble.double where the associated value if the number found in the JSON.

    如果转换成功,那么我们将获得StringOrDouble.double类型的值,如果在JSON中找到该数字, StringOrDouble.double关联值。

    If the conversion fails then we try to read a String to produce a value of type StringOrDouble.string.

    如果转换失败,则我们尝试读取String以产生类型为StringOrDouble.string的值。

    If also the second conversion fails then an error is thrown.

    如果第二次转换也失败,那么将引发错误。

    返回电影模式 (Back to the Movies model)

    Now we can complete the implementation of the Movies model

    现在我们可以完成Movies模型的实现

    struct Movies: Decodable {    let movies: [Movie]
    struct Movie: Decodable {
    let title: String
    let vote: StringOrDouble
    }
    }

    测试中 (Testing)

    Finally, we can decode our JSON.

    最后,我们可以解码JSON。

    let data = """
    {
    "movies": [
    {
    "title": "Start Trek: Generations",
    "vote": 6.6
    },
    {
    "title": "Start Trek: First Contact",
    "vote": "7.6"
    }
    ]
    }
    """.data(using: .utf8)!do {
    let movies = try JSONDecoder().decode(Movies.self, from: data)
    print(movies)
    } catch {
    print(error)
    }

    Result

    结果

    Movies(movies: [
    Movies.Movie(title: "Start Trek: Generations",
    vote: StringOrDouble.double(6.6)),
    Movies.Movie(title: "Start Trek: First Contact",
    vote: StringOrDouble.string("7.6"))
    ])

    翻译自: https://medium.com/swlh/decoding-a-json-field-that-could-be-string-or-double-with-swift-f6ea6a2babf8

    js json串解码

    展开全文
  • Access 我把双精度字段改成长整形的。。数据库怎么变大了?把文本类型的改成整形的也变大了
  • 请问 arcgis10.4.1中 双精度型无法设置精度和小数位数是什么原因啊?我添加字段时填写了精度 15和小数位数 4 但是生成的字段 两者都是0。
  • 另请问下到底什么是双精度?想知道实际的意义。不要定义。
  • 如果用SQL语句生成一张DBF表,其中有一个字段双精度型 我要他保留小数点后2位 这个SQL怎么写 这是我现在用的代码: string str_oleConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended ...
  • java.math.BigDecimal类提供用于算术,比例运算,舍入,比较,哈希和格式转换的操作。首先,让我们将一个double传递给BigDecimal-BigDecimalval=newBigDecimal(9.19456);...上面,我们使用了字段ROUND...
  • 标识符在Java中,标识符多用于类名、方法、字段、变量和包名等,他的命名方式需遵循以下规则:1、标识符可以由字母、数字、__、$组成,但不能包含!、#、%、空格等其他特殊字符。2、标识符的命名最好做到见名知意。3...
  • 每次从excel 中读取保存到数据库中,都会是双精度型的,晕死,后来查啦一下原来是没有转换过来(因为数据库中的字段为Varchar2(200))类型的 String cardNum = ""; //double cardInt = 7....
  • 1.数字数字可存储为以下四种数值数据类型中的一种类型:短整型长整型单精度浮点数,通常称为浮点型双精度浮点数,通常称为双精度型选择数据类型时,首先应考虑需要存储整数还是小数。如果仅需存储整数(如 12 或12,...
  • 数字数字可存储为以下四种数值数据类型中的一种类型:短整型长整型浮点型(单精度浮点数)双精度型(双精度浮点数)选择数据类型时,首先应考虑需要存储整数还是小数。如果仅需存储整数(如 12 或 12,345,678),可指定短...
  • 数值数字可存储为以下四种数值数据类型中的一种类型:短整型长整型浮点型(单精度浮点数)双精度型(双精度浮点数)选择数据类型时,首先应考虑需要存储整数还是小数。如果仅需存储整数(如 12 或 12,345,678),可指定短...
  • 对精度有要求decimalfloat 类型用于表示单精度浮点数值,而double类型用于表示双精度浮点数值,float 和 double 都是浮点型,而 decimal 是定点型。MySQL浮点型和定点型可以用类型名称后加 (M,D) 来表示,M表示该值...
  • mysql字段类型

    2021-04-13 13:02:01
    数值 类型名称 说明 存储需求 tinyint 很小的整数 ...双精度浮点数 8个字节 decimal(M, D) 压缩的“严格”的定点数 M + 2个字节 日期/时间 类型名称 说明 存储需求 year YYYY .
  • mysql字段类型简介

    2013-11-22 11:05:40
    类型 描述 INT 一种数值类型,值的范围如下 带符号的-2147483648~2147483647 不带符号的0~4294967295 ...一种数值类型,支持双精度浮点数 DATE YYYYMMDD格式的日期字段 TIME HH:MM:SS格
  • MySQL数据库中表示金额字段类型

    万次阅读 2017-10-25 21:37:05
    MySQL数据库中金额字段采用DECIMAL数据类型最近在做金融的项目,由于在设计表时存储金额的字段采用的是double的数据类型,导致在做金额计算时会有一定几率丢失精度,后来查询相关文档后...double:双精度实型,含字节
  • 对比6个常用的字段数据类型在Arcpy字段创建与字段属性输出时奇怪的事情: 添加字段使用arcpy.AddField_management: # addfield 的 type参数 ...# 双精度,Double 读取字段属性进行判断等操作时,使用Fiel...
  • 文本 nvarchar(n)备注 ntext数字(长整型) int数字(整型) smallint数字(单精度) real数字(双精度) float数字(字节) tinyint货币 money日期 smalldatetime布尔 bit附:转换成SQL的脚本。ALTER TABLE tb ALTER COLUMN ...
  • mysql字段汇总

    千次阅读 2011-10-07 19:28:43
    类型 描述 ...一种数值类型,值的范围如下 带符号的-2147483648~2147483647 不带符号的0~4294967295 最多十位,所以存手机号是不行的 ...一种数值类型,支持双精度浮点数 DATE Y
  •  long:64位存储 integer:32位存储 short:16位存储 byte:8位存储 double:64位双精度存储 float:32位单精度存储 3)复合类型 数组类型:没有明显的字段类型设置,任何一个字段的值,都可以被添加0个到多...
  • 以下为SQL SERVER7.0以上版本的字段类型说明。SQL SERVER6.5的字段类型说明请参考SQL SERVER提供的说明。...double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位) decimal:数字型,128bi
  • elasticsearch-字段类型及定义

    千次阅读 2019-05-27 14:06:30
    数字型:long:64位存储 , integer:32位存储 , short:16位存储 , byte:8位存储 , double:64位双精度存储 , float:32位单精度存储 日期型:date,并且指定为date的字段会有一个附加属性format,如 “format”: ...
  • java.lang.reflect.Field的getDouble()方法用于获取...当一个类包含一个静态或实例双精度字段并且我们想要获取该字段的值时,可以使用此方法返回Field的值。用法:public double getDouble(Object obj)throws Ille...
  • Elasticsearch 字段数据类型

    千次阅读 2018-06-11 13:41:38
    核心数据类型(Core datatypes)字符型(String datatype):string数字型(Numeric datatypes):long:64位存储 , integer:32位存储 , short:16位存储 , byte:8位存储 , double:64位双精度存储 , float...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 272
精华内容 108
关键字:

双精度字段