`

oracle存储浮点数的一个bug?

阅读更多
版本10.2.0

balance number(16,8).

insert into tablea(balance) values(99999999.99999999)
结果为100000000.00000000,居然也没报错。
insert into tablea(balance) values(trunc(99999999.99999999,8))
仍然为100000000.00000000,仍然没报错。

insert into tablea(balance) values(trunc(99999999.99999994,8))
结果为99999999.99999990。
insert into tablea(balance) values(99999999.99999994)
结果为99999999.99999990。

换个字段 ratio number(9,8)
insert into tablea(balance) values(9.99999999)
结果为9.99999999,这个是正常的。

也就是说,我存入不了99999999.99999999这个数,为啥要四舍五入啊。

为啥啊?
分享到:
评论

相关推荐

    浮点数(单精度浮点数,双精度浮点数)

    在计算机中,浮点数由一个整数或定点数(即尾数)乘以某个基数(通常是 2)的整数次幂得到。这种表示方法类似于基数为 10 的科学记数法。 浮点数的结构可以分为三部分:尾数部分(定点小数)、阶码部分(定点整数)...

    解决JS浮点数(小数)计算加减乘除的BUG

    解决JS浮点数(小数)计算加减乘除的BUG

    C语言浮点数转字符串_C语言浮点数字符串_浮点数转换_

    这个函数允许我们将结果写入到一个字符数组中,然后可以自由地处理生成的字符串: ```c #include #include int main() { double num = 3.14159; char str[30]; snprintf(str, sizeof(str), "%.2f", num); ...

    关于C语言浮点数的存储

    总之,C语言中的浮点数存储和比较涉及到了计算机科学的基础原理和编程实践,理解并掌握这些知识,将有助于我们编写更加健壮和精确的代码。通过深入学习和实践,我们可以更好地应对浮点数带来的各种挑战。

    C语言中的浮点数精度问题如何处理?

    在C语言中,浮点数的精度问题是一个常见的挑战,因为它涉及到如何在有限的位数内表示无限的实数。浮点数的存储基于IEEE 754标准,这导致了一些数字无法被精确表示,从而引发了精度问题。以下是处理浮点数精度问题的...

    C#.net中TextBox输入浮点型数字

    2. **限制小数点出现次数**:一个合法的浮点数只能包含一个小数点,并且该小数点不能出现在字符串的开头。 3. **处理特殊情况**:例如,如果用户输入了多个小数点或非法字符,则需要清除这些无效输入,并给出提示。 ...

    输入一个浮点数,判断小数有几位——C语言代码

    题目要求编写一段代码,输入一个浮点数并判断其小数部分有几位。这涉及到对浮点数的内部表示、转换和精度的理解。以下是对这个任务的详细解释: 首先,我们需要知道浮点数在计算机中的存储方式。在C语言中,标准...

    浮点数在计算机内存中的存储格式

    浮点数在计算机内存中的存储格式 浮点数在计算机内存中的存储格式对浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储。...符号位、指数位和尾数部分都是浮点数存储的必要组成部分。

    STEP7 Wincc中变量如何显示小数或浮点数?.docx

    STEP7 Wincc中变量如何显示小数或浮点数?

    单片机浮点数设计 单片机浮点数设计

    单片机浮点数设计是嵌入式系统开发中的一个重要环节,特别是在资源有限的环境中,如微控制器(MCU)等。浮点数运算在科学计算、传感器数据处理以及复杂算法实现等方面扮演着关键角色。然而,传统的单片机往往不直接...

    关于浮点数的精度问题

    浮点数精度问题是一个经典的问题,对于了解和学习C语言有一定帮助。浮点数的精度问题是由于计算机对浮点数的存储方式和表示方法所致。 IEEE754 的浮点数存储格式对浮点数的表示方法进行了规定。浮点数可以分为三...

    浮点数在计算机中的存储方式

    当我们声明一个`float`变量如`float f = 2.25f;`时,计算机内部是如何存储这个值的呢?这背后遵循的是IEEE标准,即电气与电子工程师协会制定的一系列规范。 #### IEEE浮点数标准 IEEE浮点数标准定义了浮点数的存储...

    浮点数开方.rar

    浮点数开方是计算机科学中的一个重要概念,特别是在数值计算和数学运算中。浮点数是一种表示实数的方式,它允许我们处理不精确的数值,比如带有小数的数字。在计算机内部,浮点数通常按照IEEE 754标准进行存储和操作...

    float_2_char.zip_C51 float转char_单片机 浮点数_浮点数 char_浮点数 转换_浮点数转换

    浮点数是计算机中用于表示实数的一种数据类型,通常由一个符号位、指数部分和尾数部分组成。在C语言中,`float`通常占用4字节(32位),符合IEEE 754标准,可以表示大约6-9个有效数字。 2. **字符型(`char`)简介*...

    64位浮点数与32位整数或32位浮点数之间的相互转换(V17版本仅限1500系列PLC使用).zip

    在工业自动化领域,PLC(可编程逻辑控制器)是核心控制设备之一,而西门子1500系列PLC以其强大的性能和丰富的功能被广泛应用。在编程过程中,数据类型的选择和转换至关重要,特别是涉及到数值精度和存储效率时。本...

    JLINK RTT打印浮点数

    在"JLINK RTT打印浮点数替换文件"中,可能包含了一个优化过的浮点数转换和打印函数,以适应嵌入式环境的限制。这个替换文件可能提供了以下功能: - 一个轻量级的浮点数到字符串转换函数,专为低功耗、小内存的MCU...

    十六进制转浮点数,十六进制转浮点数在线,LabView

    "十六进制转浮点数.vi"这个文件很可能是一个LabVIEW VI,它实现了上述转换功能。使用这个VI时,你需要将16进制的字符串输入到VI中,VI会输出相应的浮点数。如果你需要查看或修改这个VI的工作原理,可以打开它来查看...

    SQL Server中生成随机浮点数

    `RAND()`函数每次调用会返回一个不同的浮点数,但这个范围限定在0(包括)到1(不包括)之间。如果需要生成更广泛的随机数,我们可以结合其他函数进行变换。例如,如果我们想生成一个在a和b之间的随机实数,我们可以...

    双精度浮点数转换

    3. 与十六进制转换:浮点数可以很方便地转换为十六进制,因为每4位二进制可以精确地对应一个十六进制数字。对于双精度浮点数,其64位二进制表示可以转换为16位十六进制字符串。这在编程和调试中非常有用,因为它提供...

Global site tag (gtag.js) - Google Analytics