- 主题:现在用==比较double数是不是问题不大了?
看好多代码都频繁用这个
--
FROM 86.161.139.*
和现在不现在没关系,纯看比较的场景和目的。浮点数部分运算在一定范围内精确,出了范围就要考虑有效数字。比如你把double当做50比特的整数做加减乘法,不溢出就没事。
【 在 SHENOK 的大作中提到: 】
: 看好多代码都频繁用这个
: --
: FROM 86.161.139.*
--
FROM 61.242.150.*
那么编译器会怎么对待两个double的 == ?
直接比两段内存的每个bit
还是实际上编译成 |d1-d2|< t ?
【 在 milksea 的大作中提到: 】
: 和现在不现在没关系,纯看比较的场景和目的。浮点数部分运算在一定范围内精确,出了范围就要考虑有效数字。比如你把double当做50比特的整数做加减乘法,不溢出就没事。
--
修改:SHENOK FROM 86.161.139.*
FROM 86.161.139.*
基本上就是比较比特。细节上有些特例,比如NaN≠NaN。
但不可能替你预设一个误差值,那是乱来。
【 在 SHENOK 的大作中提到: 】
: 那么编译器会怎么对待两个double的 == ?
:
: 直接比两段内存的每个bit
: ...................
--
修改:milksea FROM 61.242.150.*
FROM 61.242.150.*
直接看编译器生成的汇编代码呀
【 在 SHENOK 的大作中提到: 】
: 那么编译器会怎么对待两个double的 == ?
: 直接比两段内存的每个bit
: 还是实际上编译成 |d1-d2|< t ?
: ...................
--
FROM 221.218.160.*
能看汇编还会问这个?x64还要懂点sse指令,不然看到UCOMISD一样抓瞎。不如一开始概念上搞清楚。
【 在 z16166 的大作中提到: 】
: 直接看编译器生成的汇编代码呀
:
: 【 在 SHENOK 的大作中提到: 】
: ...................
--
FROM 61.242.150.*
不会就学,哈
【 在 milksea 的大作中提到: 】
: 能看汇编还会问这个?x64还要懂点sse指令,不然看到UCOMISD一样抓瞎。不如一开始概念上搞清楚。
--
FROM 221.218.160.*
汇编不好学吧,感觉那些指令记不住,寄存器名与功能也记不住
只能看懂英文字面,但 MOV 来 MOV 去,功能忘了个干净
【 在 z16166 的大作中提到: 】
: 不会就学,哈
--
FROM 223.167.225.*
就问一句话:别人很多都能学会,为啥你学不会?哈哈
【 在 easior 的大作中提到: 】
: 汇编不好学吧,感觉那些指令记不住,寄存器名与功能也记不住
: 只能看懂英文字面,但 MOV 来 MOV 去,功能忘了个干净
--
FROM 221.218.160.*
要不推荐一本7天精通汇编给我?
计算机方面的心愿就差学会汇编了
【 在 z16166 的大作中提到: 】
: 就问一句话:别人很多都能学会,为啥你学不会?哈哈
--
FROM 223.167.225.*