- 主题:Re: 高级语言里的小数是怎么转化成机器里的浮点数的
被你猜中了。明天开始抓紧搬砖,拒绝灌水。
【 在 DreamDreams 的大作中提到: 】
: 你老真是有耐心,一定是工作过于轻松
:
--
FROM 61.48.130.*
是。
【 在 smallpanda03 的大作中提到: 】
: 比如double x=0.1,
: 机器里存的不是0.1而是一个近似于0.1的浮点数。这个转化是编译器做的吗?
: 发自「今日水木 on Redmi Note 7 Pro」
--
FROM 183.95.135.*
0.1是十进制,存储在内存中是二进制,按一定的格式要求(浮点数,比如多少二进制位存有效小数部分,多少位存指数部分),可以看《计算机组成原理》,计算机专业基础课
--
FROM 220.249.129.*
不是所有的十进制数和二进制数都能精确转换的,所以浮点数有精度问题,比如double类型大概15位有效小数位数
【 在 ooolinux 的大作中提到: 】
: 0.1是十进制,存储在内存中是二进制,按一定的格式要求(浮点数,比如多少二进制位存有效小数部分,多少位存指数部分),可以看《计算机组成原理》,计算机专业基础课
--
FROM 220.249.129.*
15位有效数字是带整数部分的,总共15位。
【 在 ooolinux 的大作中提到: 】
: 不是所有的十进制数和二进制数都能精确转换的,所以浮点数有精度问题,比如double类型大概15位有效小数位数
: 【 在 ooolinux 的大作中提到: 】
: : 0.1是十进制,存储在内存中是二进制,按一定的格式要求(浮点数,比如多少二进制位存有效小数部分,多少位存指数部分),可以看《计算机组成原理》,计算机专业基础课
: ...................
--来自微微水木3.5.14
--
FROM 183.193.49.*
具体可看C#代码库:
https://github.com/nilnul/nilnul.num._quotient_._LIB_
,其中提到:
To convert a double to a quotient number:
var d=nilnul.num.quotient_.radix.ext.errable_.ieee_.bin.to_._ToRationalX.ToSignificed(-1.23d);
以及相应的单元测试:
https://github.com/nilnul/nilnul.num._quotient_._TEST_
在其中:
nilnul.num._quotient_._TEST_.nilnul0.num.quotient_.radix_.binary_.dbl
下的类 可用于自己验证dbl类型。
【 在 a0123456789q 的大作中提到: 】
: 是。
:
--
修改:a0123456789q FROM 183.95.135.*
FROM 183.95.135.*
整数也就1位
【 在 foliver 的大作中提到: 】
: 15位有效数字是带整数部分的,总共15位。
--
FROM 120.35.168.*
float32 连6位十进制有效数字都不一定能达到吧
【 在 ooolinux 的大作中提到: 】
: 不是所有的十进制数和二进制数都能精确转换的,所以浮点数有精度问题,比如double类型大概15位有效小数位数
--
FROM 112.66.27.*
你不给老师付学费的吗?
【 在 smallpanda03 的大作中提到: 】
: 你学的时候老师也是这么教的吗?
: 发自「今日水木 on Redmi Note 7 Pro」
--
FROM 112.96.51.*
不愿意讲可以远离,出来装逼就不对了
【 在 shocker 的大作中提到: 】
:
: 你不给老师付学费的吗?
: --
:
--
FROM 113.7.231.*