OCaml 浮点数计算
OCaml 是一门强大的函数式静态编程语言。你可以享受纯函数式编程的快乐。又能编译成原生二进制可执行应用程序。今天要带给大家的是非常基础的知识。浮点数的计算。
OCaml 有多个基础数据类型,数学类型有整数,浮点数。
我们讲浮点数今天。
OCaml 中的浮点数,跟其他编程语言有一点相似,那就是表现为 带.符号的数字。小数点左边是整数位,右边是小数位
下面看我们在utop中执行的浮点数计算示例。
Type #utop_help for help about using utop.
─( 15:26:31 )─< command 0 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. 6.1
;;
- : float = 10.1
─( 15:26:31 )─< command 1 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. 6;;
Error: This expression has type int but an expression was expected of type
float
Hint: Did you mean `6.'?
─( 15:26:37 )─< command 2 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. 6.;;
- : float = 10.
─( 15:26:42 )─< command 3 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. .6;;
Error: Syntax error
─( 15:26:46 )─< command 4 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. 0.6;;
- : float = 4.6
─( 15:26:53 )─< command 5 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 *. 1.17;;
- : float = 4.68
─( 15:26:57 )─< command 6 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 * 1.17;;
Error: This expression has type float but an expression was expected of type
int
─( 15:27:53 )─< command 7 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 /. 1.17;;
- : float = 3.41880341880341909
─( 15:27:56 )─< command 8 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 / 1.17;;
Error: This expression has type float but an expression was expected of type
int
─( 15:28:07 )─< command 9 >────────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 + 1.17;;
Error: This expression has type float but an expression was expected of type
int
─( 15:28:10 )─< command 10 >───────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 +. 1.17;;
- : float = 5.17
─( 15:28:15 )─< command 11 >───────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 -. 1.17;;
- : float = 2.83
─( 15:28:19 )─< command 12 >───────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # 4.0 - 1.17;;
Error: This expression has type float but an expression was expected of type
int
─( 15:28:23 )─< command 13 >───────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop #
utop是OCaml的互动式编程命令行界面,你可以用opam安装它。
opam install utop
安装之后,可以在命令行下面运行utop,进入互动编程界面。
想要退出,也简单,输入Option[windows平台应该是对应win键] + d
你就可以退出utop互动界面。
我们需要注意:
1) OCaml的浮点数写法,有几个特殊
比如6.0 这个浮点数,我们可以写 6.0,也可以写成6. 省略小数点后面的0,这也是合法的。但是我建议是大家严格写。
2) 另外就是浮点数的加减乘除运算,需要在对应的符号加一个小数点,表示这是一个浮点运算。
不然会报错:
This expression has type int but an expression was expected of type
float
3) 浮点数计算可以是负值,例如:
# 4.0-.11.7;;
- : float = -7.69999999999999929
4) 我们需要注意,输入完表达之后,输入两个分号;;让程序执行。编译器会编译,并执行我们的代码。
5) 再者,我们不能混用整数与浮点数进行运算,必须把整数转成浮点数才能计算
# (float_of_int 8) /. 1.17;;
- : float = 6.83760683760683818
参见示例,我们用函数 (float_of_int x) 来把x 的整数,转成它的浮点数,然后再计算就可以了
关于OCaml的浮点数,你学会了吗?
这是基础中的基础知识。跟着锋哥爱学习,一起学习OCaml的编程吧。
今天就讲解到这里,
分类: 默认 标签: 发布于: 2022-06-26 15:40:30, 更新于: 2022-06-26 15:40:30