浮点数

Java大浮点数

泄露秘密 提交于 2020-01-31 03:27:06
BigDecimal 文章参考自 https://blog.csdn.net/GD_ONE/article/details/103951501 和百度百科 精度问题 BigDecimal舍入模式 ROUND_DOWN 向零舍入。 即1.55 变为 1.5 , -1.55 变为-1.5 ROUND_UP 向远离0的方向舍入 即 1.55 变为 1.6 , -1.55 变为-1.6 ROUND_CEILING 向正无穷舍入. 即 1.55 变为 1.6 , -1.55 变为 -1.5 ROUND_FLOOR 向负无穷舍入. 即 1.55 变为 1.5 , -1.55 变为 -1.6 ROUND_HALF_UP 四舍五入 即1.55 变为1.6, -1.55变为-1.6 ROUND_HALF_DOWN 五舍六入 即 1.55 变为 1.5, -1.5变为-1.5 ROUND_HALF_EVEN 如果舍入前一位的数字为偶数,则采用HALF_DOWN奇数则采用HALF_UP 如1.55 采用HALF_UP 1.45采用HALF_DOWN ROUND_UNNECESSARY 有精确的位数时,不需要舍入 BigDecimal在进行运算时也可以进行舍入 例如除法 divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

JS浮点数的研究

泪湿孤枕 提交于 2020-01-30 19:32:27
为什么0.1 + 0.2 得到的是 0.30000000000000004 console.log( 0.1 + 0.2 == 0.3);//false 在js中所有的整数和小数都是以Number形式储存在字节bit中,而javaScipt中Number采用的是64位的双精度浮点型. 而0.1和0.2转为二进制时: //0.1转为二进制0.1 =0.0 0011 0011 0011 0011...(0011无限循环)//0.2转为二进制0.0011 0011 0011 0011 0011...(0011无限循环)//转为二进制时,0.1和0.2的数字实际上是无限循环的. 在加法计算时,Number实际上是以零后52位进行运算,有误差值. var d = 0.1 + 0.2;console.log(d.toString(2)); console.log(d);//0.0100110011001100110011001100110011001100110011001101(默认54位)//0.30000000000000004   解决方法 以 toFixed方法来固定保留小数位,固定保留小数位。 来源: https://www.cnblogs.com/zenggaozheng/p/12243463.html

JS正则表达式使用

妖精的绣舞 提交于 2020-01-29 12:49:30
<script type="text/javascript"> function SubmitCk() { var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if (!reg.test($("#txtEmail").val())) { alert("请输入正确邮箱地址") return false; } } </script> 验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 验证长度为3的字符:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A

混合类型数据格式化输入

狂风中的少年 提交于 2020-01-29 00:20:01
混合类型数据格式化输入 本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。 输入格式: 输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。 输出格式: 在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。 输入样例: 2.12 88 c 4.7 输出样例: c 88 2.12 4.70 c语言 # include <stdio.h> int main ( ) { float a ; int b ; char c ; float d ; scanf ( "%f %d %c %f" , & a , & b , & c , & d ) ; printf ( "%c %d %.2f %.2f" , c , b , a , d ) ; return 0 ; } ``` java语言 ```java import java . util . Scanner ; public class Main { public static void main ( String [ ] args ) { Scanner scan = new Scanner ( System . in ) ; int i ; double d1 , d2 ; char c ; d1 = scan .

C语言细节问题

拜拜、爱过 提交于 2020-01-28 17:32:05
c#### <stdio.h>标准输入输出文件 目标文件,可执行文件,启动代码,编译器,连接器。 main函数是C程序调用的第一个函数 可以用小写,大写,数字,字母,下划线命名,但名称的第一个字符必须是字符或下划线, 不能是数字 。 C99和C11允许使用更长的表示符名,但编译器只识别前63个字符 。C99和C11还支持 扩展字符 例如三字符(??=)等价为 # C99中(%:)等价为 # 需要在编译器激活相关选项才能使用 C99之前的标准要求变量必须在块的顶部,其他语句不能在变量的前面。C99和C11遵循C++的惯例,可以把声明放在块中的任意位置。 return 语句再main()函数中如果不加,在执行到 } 时会自动返回0 ,为了代码规范,最好加上。main(void),有的编译器支持()的写法,但最好写上(void)。 #include <stdio.h> void f(void); int main(void) { printf("hello world\n"); f(); return 0; } void f(void) { printf("YES"); } //这种写法也可以调用函数 数据和C float ,double long double 表示小数类型 . bool表示布尔值(false和tule) complex和imaginary分别表示复数和虚数。 2

Python内置函数(55)——round

左心房为你撑大大i 提交于 2020-01-28 05:06:43
英文文档: round ( number [, ndigits ] ) Return the floating point value number rounded to ndigits digits after the decimal point. If ndigits is omitted, it returns the nearest integer to its input. Delegates to number.__round__(ndigits) . For the built-in types supporting round() , values are rounded to the closest multiple of 10 to the power minus ndigits ; if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0 , and round(1.5) is 2 ). The return value is an integer if called with one argument, otherwise of the same type

printf右对齐补零

一笑奈何 提交于 2020-01-28 03:44:06
Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号 作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数

java的基本数据类型

微笑、不失礼 提交于 2020-01-27 19:03:28
java的基本数据类型有八种: 1)四种整数类型(byte、short、int、long): byte:8 位,用于表示最小数据单位,如文件中数据,-128~127 short:16 位,很少用,-32768 ~ 32767 int:32 位、最常用,-2^31-1~2^31 (21 亿) long:64 位、次常用 注意事项: int i=5; // 5 叫直接量(或字面量),即 直接写出的常数。 整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。 小于 32 位数的变量,都按 int 结果计算。 强转符比数学运算符优先级高。见常量与变量中的例子。 2)两种浮点数类型(float、double): float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。 double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾 注意事项: 二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方) 尾数: . 1010100010 指数:1010 基数:2 浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或

AcWing 790.数的三次方根

一个人想着一个人 提交于 2020-01-27 17:48:01
AcWing 790.数的三次方根 题目描述 给定一个浮点数n,求它的三次方根。 输入格式 共一行,包含一个浮点数n。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留6位小数。 数据范围 −10000≤n≤10000 输入样例 1000.00 输出样例 10.000000 题目思路 采用浮点数的二分思想 #include<bits/stdc++.h> using namespace std; const double eps = 1e-8; double check(double n) { return n*n*n; } int main() { double n; scanf("%lf",&n); double l=-1e4,r=1e4; while(r-l>eps) { double mid = (l+r)/2; if(check(mid)>n)r=mid; else l=mid; } printf("%lf",l); return 0; } 来源: https://www.cnblogs.com/fsh001/p/12236378.html

单精度浮点数和双精度浮点数的区别

有些话、适合烂在心里 提交于 2020-01-27 12:15:08
单精度浮点数(float)与双精度浮点数(double)的区别如下: (1)在内存中占有的字节数不同 单精度浮点数在机内占4个字节 双精度浮点数在机内占8个字节 (2)有效数字位数不同 单精度浮点数有效数字8位 双精度浮点数有效数字16位 (3)所能表示数的范围不同 单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38 双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308 来源: CSDN 作者: 糖哲睿 链接: https://blog.csdn.net/qq_44473695/article/details/104091171