ShoneSharp语言(S#)的设计和使用介绍

系列(5)— 数值Double

作者:Shone

声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。

摘要: S#语言的最基本类型——数值(对应C#的Double),可用于表示整数或实数值,如10、25.32等。S#只有一种数值类型,可避免类型转换和运算陷阱。本文详细列出数值类型专用的常量、函数、属性以及方法,包括语法格式、成员说明、输入示例以及求值结果。

软件: S#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn

今天详细解释一下S#语言的最基本类型——数值(对应C#的双精度浮点数类型double),可用于表示整数或实数值,如10、25.32等。

注意C#中还有int, float, byte, short, long等多种数值类型,为什么S#只有一种数值类型?

S#这样设计就是为了简化常规数据输入,避免进行类型转换,同时也避免部分符号的运算陷阱。比如:在C#中5/2等于2,而5/2.0则等于2.5,这对于用户大量输入数据公式时很容易犯下错误,而且不容易察觉。因此S#这样设计可以确保5/2等于2.5。

S#语言为数值类型专门提供了大量的常量、函数、属性以及方法,具体语法格式、成员说明、输入示例以及求值结果都在下面详细列出,可供参考。

其实还有些适用于数值类型的算符、函数、属性以及方法,如10+20、cos(30)、5.2.ToStr等,没有在本节列出而是放在其基类型——任意对象(对应C#的object)中介绍,因为这些符号功能更加强大,不但支持数值,还支持数组、列表和数据表的计算。比如[10,15]+20、cos({30,40,50})、{5.2,[1,2],6}.ToStr。

(1) 常量

Double BaseE

说明:自然对数底e

输入:BaseE

求值:2.7182818284590451

Double DecFactor

说明:角度系数

输入:DecFactor

求值:57.295779513082323

Double DoubleE

说明:2e

输入:DoubleE

求值:5.43656365691809

Double DoubleEpsilon

说明:2ε

输入:DoubleEpsilon

求值:2E-06

Double DoublePI

说明:2π

输入:DoublePI

求值:6.2831853071795862

Double Epsilon

说明:误差因子ε

输入:Epsilon

求值:1E-06

Double HalfE

说明:e/2

输入:HalfE

求值:1.3591409142295225

Double HalfEpsilon

说明:ε/2

输入:HalfEpsilon

求值:5E-07

Double HalfND

说明:-0.5的标准正态分布概率值

输入:HalfND

求值:0.3085

Double HalfPI

说明:π/2

输入:HalfPI

求值:1.5707963267948966

Double MaxValue

说明:最大数值 1.7976931348623157E+308

输入:MaxValue

求值:1.7976931348623157E+308

Double MinValue

说明:最小数值 -1.7976931348623157E+308

输入:MinValue

求值:-1.7976931348623157E+308

Double NaN

说明:非数字0/0、∞/∞、sqrt(负数)、ln(负数)等

输入:NaN

Double NEpsilon

说明:-ε

输入:NEpsilon

求值:-1E-06

Double NInfinity

说明:负无穷大-∞

输入:NInfinity

求值:-∞

Double OneEpsilon

说明:1+ε

输入:OneEpsilon

求值:1.000001

Double OneHalfND

说明:-1.5的标准正态分布概率值

输入:OneHalfND

求值:0.0668

Double OneND

说明:-1的标准正态分布概率值

输入:OneND

求值:0.1587

Double OneNEpsilon

说明:1-ε

输入:OneNEpsilon

求值:0.999999

Double OneSigma

说明:1σ区间概率累计值

输入:OneSigma

求值:0.6826

Double PI

说明:圆周率π

输入:PI

求值:3.1415926535897931

Double PInfinity

说明:正无穷大∞

输入:PInfinity

求值:∞

Double Precision

说明:小数点精度位数

输入:Precision

求值:6

Double RadFactor

说明:弧度系数

输入:RadFactor

求值:0.017453292519943295

Double SqrdE

说明:e平方

输入:SqrdE

求值:7.3890560989306495

Double SqrdEpsilon

说明:ε平方

输入:SqrdEpsilon

求值:1E-12

Double SqrdPI

说明:π平方

输入:SqrdPI

求值:9.869604401089358

Double SqrtE

说明:e平方根

输入:SqrtE

求值:1.6487212707001282

Double SqrtEpsilon

说明:ε平方根

输入:SqrtEpsilon

求值:0.001

Double SqrtPI

说明:π平方根

输入:SqrtPI

求值:1.7724538509055159

Double ThreeHD

说明:-3的标准正态分布概率值

输入:ThreeHD

求值:0.0013

Double ThreeSigma

说明:3σ区间概率累计值

输入:ThreeSigma

求值:0.9974

Double TwoHalfND

说明:-2.5的标准正态分布概率值

输入:TwoHalfND

求值:0.0062

Double TwoND

说明:-2的标准正态分布概率值

输入:TwoND

求值:0.0228

Double TwoSigma

说明:2σ区间概率累计值

输入:TwoSigma

求值:0.9544

(2) 函数

Double ang(Double x, Double y)

说明:求点坐标(x,y)逆时针方向角度值

输入:ang(10,10)

求值:45

Double area(Double a, Double b, Double c)

说明:求边长为a,b,c三角形的面积

输入:area(10,10,10)

求值:43.301270189221931

Double avd(Double m, Double L, Double d)

说明:求长度L间距d的等分距,m为等距模式:-1最小间距,0近似间距,1最大间距

输入:avd(0,100,30)

求值:33.333333333333336

Double avn(Double m, Double L, Double d)

说明:求长度L间距d的等分数,m为等距模式:-1最小间距,0近似间距,1最大间距

输入:avn(0,100,30)

求值:3

Double cmb(Double n, Double r)

说明:求(n,r)组合值

输入:cmb(10,2)

求值:45

Double dist(Double x1, Double y1, Double x2, Double y2)

说明:求点(x1,y1)到点(x2,y2)的距离平方

输入:dist(0,0,10,10)

求值:14.142135623730951

Double distsqrd(Double x1, Double y1, Double x2, Double y2)

说明:求点(x1,y1)到点(x2,y2)的距离平方

输入:distsqrd(0,0,10,10)

求值:200

Double dx(Double r, Double a)

说明:求极坐标(r,a)在X轴投影值

输入:dx(100,30)

求值:86.602540378443877

Double dy(Double r, Double a)

说明:求极坐标(r,a)在Y轴投影值

输入:dy(100,30)

求值:50

Double gauss(Double x)

说明:高斯标准正态分布函数

输入:gauss(0.5)

求值:0.35206532676429952

Double gauss(Double x, Double u, Double e)

说明:高斯正态分布函数

输入:gauss(0.5,0,1)

求值:0.35206532676429952

Double gcd(Double a, Double b)

说明:计算两个整数的最大公约数

输入:gcd(20,12)

求值:4

Double lcm(Double a, Double b)

说明:计算两个整数的最小公倍数

输入:lcm(20,12)

求值:60

Double max(Double val1, Double val2)

说明:求最大值

输入:max(1,10)

求值:10

Double mid(Double d1, Double d2)

说明:求[d1,d2]区间的中值

输入:mid(0,10)

求值:5

Double min(Double val1, Double val2)

说明:求最小值

输入:min(1,10)

求值:1

Double norm(Double a)

说明:求[0,360]区间规格化角度值

输入:norm(390)

求值:30

Double pbl2(Double x)

说明:二次过渡函数(抛物线)

输入:pbl2(0.5)

求值:0.25

Double pbl3(Double x)

说明:三次过渡函数(抛物线)

输入:pbl3(0.5)

求值:0.5

Double pbl4(Double x)

说明:四次过渡函数(抛物线)

输入:pbl4(0.5)

求值:0.3125

Double pbla(Double x)

说明:圆弧过渡函数

输入:pbla(0.5)

求值:0.2632316107465042

Double pblaa(Double x)

说明:双圆弧过渡函数

输入:pblaa(0.5)

求值:0.5

Double pbls(Double x)

说明:正弦线过渡函数

输入:pbls(0.5)

求值:0.29289321881345254

Double pblss(Double x)

说明:双正弦线过渡函数

输入:pblss(0.5)

求值:0.5

Double pmt(Double n)

说明:求排列值

输入:pmt(10)

求值:3628800

Double pmt(Double n, Double r)

说明:求(n,r)排列值

输入:pmt(10,2)

求值:90

Double rang(Double x, Double y)

说明:求点坐标(x,y)逆时针方向弧度值

输入:rang(10,10)

求值:0.78539816339744828

Double rnorm(Double a)

说明:求[0,2π]区间规格化弧度值

输入:rnorm(10)

求值:3.7168146928204138

Double root(func(…) fx, Double a, Double b)

说明:用二分法求[a,b]区间指定函数的根,注意必须单调函数且必有根

输入:root(x=>2*x-1,-1,1)

求值:0.5

Double[] roots(func(…) fx, Double a, Double b)

说明:返回指定区间[a,b]内指定函数的根数组(最多5个)

输入:roots(x=>x*x-0.5,-1,1)

求值:[-0.70710678100585933, 0.70710678100585933]

Double spl(Double L, Double d, Double w)

说明:求长度L间距d等宽的螺旋钢筋总长

输入:spl(50,5,30)

求值:945.74462665601391

Double spl(Double L, Double d, Double w1, Double w2)

说明:求长度L间距d变宽w1~w2的螺旋钢筋总长

输入:spl(50,5,15,30)

求值:525.51295716469406

(3) 属性

Bool Double.ApproxZero

说明:判断数值是否近似于0(误差ε)

输入:x.ApproxZero

String Double.CharStr

说明:转换为单个字符串,如"A"

输入:x.CharStr

Bool Double.EqualZero

说明:判断数值是否约等于0(误差ε平方)

输入:x.EqualZero

Double Double.Factor

说明:获取数值整数部分的分解因子

输入:x.Factor

Double[] Double.Factors

说明:获取数值整数部分的分解因子数组

输入:x.Factors

Bool Double.IsEven

说明:判断数值整数部分是否为偶数

输入:x.IsEven

Bool Double.IsInvalid

说明:判断数值是否无效(无穷大或非数字)

输入:x.IsInvalid

Bool Double.IsOdd

说明:判断数值整数部分是否为奇数

输入:x.IsOdd

Bool Double.IsPrime

说明:判断数值整数部分是否为质素

输入:x.IsPrime

Bool Double.IsValid

说明:判断数值是否有效

输入:x.IsValid

String Double.LevelStr

说明:转换为3位小数点标高串,如4.250

输入:x.LevelStr

Bool Double.NearZero

说明:判断数值是否靠近于0(误差ε平方根)

输入:x.NearZero

Double Double.Odd

说明:返回整数部分0/1

输入:x.Odd

String Double.ScaleStr

说明:转换为比例格式标高串,如1:4

输入:x.ScaleStr

(4) 方法

Bool Double.Approxes(Double d2)

说明:判断数值是否近似(误差ε)

输入:x.Approxes(10)

Bool Double.Betweens(Double a, Double b)

说明:判断数值是否∈[a,b]

输入:x.Betweens(0,10)

Bool Double.Betweins(Double a, Double b)

说明:判断数值是否∈[a,b)

输入:x.Betweins(0,10)

Bool Double.Betwiens(Double a, Double b)

说明:判断数值是否∈(a,b]

输入:x.Betwiens(0,10)

Bool Double.Betwiins(Double a, Double b)

说明:判断数值是否∈(a,b)

输入:x.Betwiins(0,10)

Bool Double.Equals(Double d2)

说明:判断数值是否约等(误差ε平方)

输入:x.Equals(10)

Double Double.Interplate(Double d2, Double t)

说明:计算线性插值

输入:x.Interplate(10,0.5)

Double Double.Interplate(Double d2, ILambada func, Double t)

说明:计算自定义函数插值

输入:x.Interplate(10,x=>2*x*x-x,0.5)

Double Double.Interplate(Double d2, Object mode, Double t)

说明:按模式进行插值(mode=0/1线性,=10/11三次抛物线,=20/21四次抛物线,=30/31二次抛物线,=40/41圆弧,=50/51双圆弧,=60/61正弦线,=70/71双正弦线,=80/81常量线)

输入:x.Interplate(10,0,0.5)

Bool Double.Nears(Double d2)

说明:判断数值是否靠近(误差ε平方根)

输入:x.Nears(10)

Bool Double.Nears(Double d2, Double nearness)

说明:判断数值是否靠近(指定误差)

输入:x.Nears(10,0.001)

String Double.ToShortStr(Double delta)

说明:转换为短字符串,保持指定精度

输入:x.ToShortStr(0.001)

String Double.ToStr(String format)

说明:转换为指定格式字符串

输入:x.ToStr('f1')

声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。

软件: S#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn

ShoneSharp语言(S#)的设计和使用介绍系列(5)— 数值Double的更多相关文章

  1. ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇

    ShoneSharp语言(S#)的设计和使用介绍 系列(1)- 开篇 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. 一 ...

  2. ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述

    ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...

  3. ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具

    ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...

  4. ShoneSharp语言(S#)的设计和使用介绍系列(2)— 掀开盖头

    ShoneSharp语言(S#)的设计和使用介绍 系列(2)- 掀开盖头 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...

  5. ShoneSharp语言(S#)的设计和使用介绍系列(11)—“类”披炫服靓妆化成“表”

    ShoneSharp语言(S#)的设计和使用介绍 系列(11)—“类”披炫服靓妆化成“表” 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sh ...

  6. ShoneSharp语言(S#)的设计和使用介绍系列(10)— 富家子弟“语句“不炫富

    ShoneSharp语言(S#)的设计和使用介绍 系列(10)— 富家子弟“语句“不炫富 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sho ...

  7. ShoneSharp语言(S#)的设计和使用介绍系列(9)— 一等公民“函数“爱炫巧

    ShoneSharp语言(S#)的设计和使用介绍 系列(9)— 一等公民“函数“爱炫巧 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Shon ...

  8. ShoneSharp语言(S#)的设计和使用介绍系列(8)— 最炫“公式”风

    ShoneSharp语言(S#)的设计和使用介绍 系列(8)— 最炫“公式”风 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSha ...

  9. ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object

    ShoneSharp语言(S#)的设计和使用介绍 系列(7)— 布尔Bool及对象Object 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ ...

  10. ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String

    ShoneSharp语言(S#)的设计和使用介绍 系列(6)— 字符串String 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneS ...

随机推荐

  1. 在线教育项目-day05【课程分类管理-添加课程分类】

    1.引入依赖 之前测试EasyExcel已经引入过了 2.利用代码生成器生成结构 我们做的只需要更改代码生成器的数据库表即可 3.运行代码生成器 4.书写代码 1.controller @RestCo ...

  2. 【shell】shell脚本入门

    1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...

  3. 【Linux常见命令】xargs命令

    xargs - build and execute command lines from standard input. 从标准输入< 方向获取数据,再创建和执行命令 xargs 是给命令传递参 ...

  4. div/dom元素拖拽缩放插件,纯js实现拖拽缩放,不依赖jQuery~

    产品需求,需要用到对div(dom)进行拖拽缩放操作,看到有好多插件,要么依赖jQuery,要么文件太大. 封装了一个插件,不压缩状态下5KB. html <!DOCTYPE html> ...

  5. php数组存在重复的相反元素,去重复

    $arr1=array('a_b','c_d','b_a','d_c'); $arr2=array('a_b','c_d','b_a','d_c'); 条件: a_b==b_a:c_d==d_c: 需 ...

  6. 【阅读笔记】Ranking Relevance in Yahoo Search (一)—— introduction & background

    ABSTRACT: 此文在相关性方面介绍三项关键技术:ranking functions, semantic matching features, query rewriting: 此文内容基于拥有百 ...

  7. C++课程设计,12306模拟写起来就是这么粗暴

    这篇文章很详细,也很多希望可以好好看看!看完C++稳过! 一.12306应该具备那些功能 1.查询(一个月以内的): 1.查车票:出发地+目的地+出发时间->显示经过两站车票信息 (余票,车次信 ...

  8. C++--浅谈开发系统的经验

    最近写了不少类了,从垃圾代码爬坑,虽然还是很垃圾,但是照葫芦画瓢,有几分神韵.在这里总结一下,写类的经验教训. 第一步 分析: 当拿到一个要求时,要先去考虑怎样一个类到底该实现什么样的功能,有什么样的 ...

  9. 聊聊select, poll 和 epoll

    聊聊select, poll 和 epoll 假设项目上需要实现一个TCP的客户端和服务器从而进行跨机器的数据收发,我们很可能翻阅一些资料,然后写出如下的代码. 服务端 void func(int s ...

  10. 10.秋招复习简单整理之CSMA/CD协议

    我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用.因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会相互干扰,使得所发送的数据被破坏.因此,如何协调总线上各计算机的工作 ...