浮点比较例程
浮点比较问题
使用
系统 . 系统实用程序 ;
无功功率,无功功率 X(X) , Y(Y) : 单个 ;
开始
X(X) := 9 9.9999964 ;
Y(Y) := 10 0.000003 ;
Writeln公司 ( “X=” , 浮点数到Str ( X(X) )) ;
Writeln公司 ( “Y=” , 浮点数到Str ( Y(Y) )) ; 读取Ln ;
结束 .
X=100 Y=100
无功功率,无功功率 X(X) : 单个 ;
开始
X(X) := 0.1 ;
Writeln公司 ( “X=” , 浮点数到Str ( X(X) )) ;
结束 .
X=0.100000001490116
无功功率,无功功率 X(X) : 单个 ;
开始
X(X) := 0.1 ;
如果 X(X) = 0.1 然后
Writeln公司 ( “相等” )
其他的
Writeln公司 ( '不相等' ) ;
读取Ln ;
结束 .
不相等
无功功率,无功功率
X(X) : 单个 ;
Y(Y) : 双精度 ;
开始
X(X) := 0.1 ;
Y(Y) := 0.1 ;
如果 X(X) = Y(Y) 然后
Writeln公司 ( “相等” )
其他的
Writeln公司 ( '不相等' ) ;
读取Ln ;
结束 .
不相等
比较例程
功能 比较值 ( 常数 A类 , B类 : 扩展 ; 艾司隆 : 扩展 ) : T价值关系 ;
功能 SameValue公司 ( 常数 A类 , B类 : 扩展 ; 艾司隆 : 扩展 ) : 布尔值 ;
功能 IsZero(零) ( 常数 A类 : 扩展 ; 艾司隆 : 扩展 ) : 布尔值 ;
艾司隆 = 马克斯 ( 分钟 ( 防抱死制动系统 ( A类 ) , 防抱死制动系统 ( B类 )) * 1E-16级 , 1E-16级 )