why binary_double datatype value shows differently
implicit conversion , 把数字转换成 BINARY_DOUBLE, 就会存储为科学记数的样子, 与实际 数字是不一样的。
this data is inexact as when it be inserted, that because Oracle has implicit conversion. Oracle Database automatically converts a value from one data type to another when such a conversion makes sense.
The following rules govern implicit data type conversions:
-
During
INSERT
andUPDATE
operations, Oracle converts the value to the data type of the affected column. -
During
SELECT
FROM
operations, Oracle converts the data from the column to the type of the target variable. -
When manipulating numeric values, Oracle usually adjusts precision and scale to allow for maximum capacity. In such cases, the numeric data type resulting from such operations can differ from the numeric data type found in the underlying tables.
-
When comparing a character value with a numeric value, Oracle converts the character data to a numeric value.
-
Conversions between character values or
NUMBER
values and floating-point number values can be inexact, because the character types andNUMBER
use decimal precision to represent the numeric value, and the floating-point numbers use binary precision. -
When converting a
CLOB
value into a character data type such asVARCHAR2
, or convertingBLOB
toRAW
data, if the data to be converted is larger than the target data type, then the database returns an error. -
During conversion from a timestamp value to a
DATE
value, the fractional seconds portion of the timestamp value is truncated. This behavior differs from earlier releases of Oracle Database, when the fractional seconds portion of the timestamp value was rounded. -
Conversions from
BINARY_FLOAT
toBINARY_DOUBLE
are exact. -
Conver