刚做一个简单的减法运算,如题
开始很所以然的认为等于0.0001,结果确不是
<?php
echo 1.0001 - 1; //结果等于:9.9999999999989E-5,我和我的小伙伴们都惊呆了。。。
?>
小数位的减法都是这样吗?当保留两位小数时,结果还是我们正常想像的那样。
<?php
echo 1.01 - 1; //结果等于:0.01
?>
那如果要进行如题的运算,该怎么办呢?php手册中有专门的方法bcsub
<?php
echo bcsub(1.0001 , 1, 4); //结果就等于:0.0001了。注意:后面的4,保留4位小数不能少。要不结果也就不对了
?>
这里再提一点,再大一些的运算如14位以上的运算,这个方法也就不能用了
<?php
echo bcsub(98765432101234 , 12345678901234); //14位运算结果等于:86419753200000
echo bcsub(987654321012345 , 123456789012345); //15位运算结果等于:0
?>
最后,大家算钱的时候一定要注意了。不要到时候就悲剧了。
分享到:
相关推荐
在使用JavaScript进行小数运算时,特别是加、减、乘、除四种基本运算,经常会遇到结果出现过多的小数位数问题。具体来说,当两个小数进行运算时,结果往往不是精确值,而是由于浮点数精度问题或者二进制转换所导致的...
所以 04000H 表示小数 0.5,01000H 表示小数,而 0001H 表示 16 位定点 DSP 能表示的最小的小数(有符号)=0.8125。 二、实现 16 位定点加法 C54X 中提供了多条用于加法的指令,如 ADD,ADDC,ADDM 和 ADDS。其中...
- 101 and 100 columns > 0111:将当前值的第四位和第五位移至第一位和第二位 - Subtract 3:从当前值中减去 3 - 继续执行上述操作,直到左移操作使最高位的 BCD 数字被移出,即完成计算 - 这里没有给出具体的...
货币型常量是数值型的一种,但需前缀$,例如$3.1415926,系统会自动四舍五入至4位小数。 3. 货币型常量:与数值型相似,但需加$符号,如$3.1416,且不能采用指数形式。 4. 日期型常量:放置于花括号{}内,以指定的...
例如,0.6等于6乘以1/10,0.87等于87乘以1/100,0.25等于25乘以1/100,而0.0001等于1乘以1/10000。这种表示方式进一步巩固了小数与分数的联系,并在进行小数与整数之间的转换时提供了便利。 总结来说,小数是数学...
1. **小数的意义**:小数是将1平均分成10份、100份、1000份等,其中的1份或几份可以用分数表示,也可用小数表示。例如,0.1、0.01、0.001等都是小数。小数的计数单位分别是十分之一(0.1)、百分之一(0.01)、千分...
12. **近似值**:9.846保留整数约是10,保留一位小数约是9.8,保留两位小数约是9.85。 13. **三角形分类**:三角形按角的大小分为锐角三角形、直角三角形和钝角三角形。 14. **判断题**:涉及到乘法的优先级、混合...
2. 货币型(Currency):专为货币数据设计,以$符号开头,精确到小数点后四位。代码为Y。 3. 数值型(Numeric):存储整数和小数,占8个字节,支持十进制和十六进制格式。代码为N。 4. 浮点型(Float):等同于数值...
- 在非零数字之间的零也是有效数字,如1.006有四位有效数字。 - 在非零数字前的零仅起到定位作用,不算有效数字,如0.0001只有一位有效数字。 - 在所有非零数字之后的零通常算作有效数字,如0.1000有四位有效数字...
9. **乘法的性质**:如0.01 × 0.01 = 0.0001,展现了乘方的计算规则,小数乘以自身会缩小或扩大相应的倍数。 10. **特殊乘法**:如8 × 0.125 = 1,1 × 0.4 = 0.4,这类乘法记忆有助于快速解题。 11. **小数的...
6. 计数单位:两位小数的计数单位是0.01,四位小数的计数单位是0.0001。判断题6正确。 7. 近似值:3.9964保留两位小数是4.00,而不是4。判断题7错误。 8. 三角形面积:等底等高的三角形面积相等。判断题8正确。 9...
- 实数:如 `0.0001`, `1.60210E-20` - 复数:如 `2i`, `-3.14159i`, `-4+3i` #### 1.3 运算符 - **四则运算**:加法 `+`、减法 `-`、乘法 `*`、除法 `/` 和 `\`、乘方 `^`。 - 示例: - `(a) 1+2-3*4/5`,其中...
3. **货币型常量**:与数值型类似,但需前缀$,例如$3.1415926,系统会自动四舍五入至4位小数。 这些基本数据类型和常量的理解对于使用Visual FoxPro进行数据存储和处理至关重要。通过掌握这些知识,开发者能够创建...
1. 最大正数:小数点前为0,小数点后所有数值位为1,表示最大正小数。这相当于2^(-15),即(1 - 2^-15) = 0.000000000011111。 2. 最小负数:小数点前为1,小数点后所有数值位为1,表示最小负小数。这相当于-(1 - 2^-...
8. **数字的位置和含义**:3.4567是四位小数,“3”在个位上,表示3个1;"6"在千分位上,表示6个0.001。理解数字在小数点后的位置至关重要,因为它们决定了数值的大小。 9. **时间的计算**:一场足球赛从9:30开始,...
例如,(0100 1001 0111 1000.0001 0100 1001)BCD 表示十进制数4978.149。在8421 BCD码的加减运算中,当和或差超过9或15时,需要进行修正,例如,(7)BCD+(6)BCD=(13)BCD过程中,若结果超出范围,需要加上6来修正。 ...
例如,0.05019精确到0.1应该是0.1,精确到百分位是0.05,保留两个有效数字也是0.05,但精确到0.0001应该是0.0502。 7. 科学记数法:科学记数法是一种表示大数或小数的方式,形式为a×10^n,其中1≤|a|。267,000,000...
9. **浮点数格式实例**:根据给定格式,一个16位浮点数的代码为(A27F)16,表示的真值表达式为(-1)^(1位阶符) * 2^(15位阶码 - bias) * (1.0 + 尾数),其中bias通常是2^(位数-1)-1,此处为2^(10-1)-1=511。...
- A35-1C = 1001 0011 0101 - 0001 1100 = 1000 0110 1001 = (A19)H - 计算十六进制数(24D)16+(53)16的结果。 - 24D + 53 = 0010 0100 1101 + 0000 0101 0011 = 0010 1010 0000 = (2A0)H #### 六、计算机中整数...
- 十六进制转二进制,每位十六进制数对应四位二进制数:0->0000, 1->0001, ..., F->1111。 - 十六进制转十进制,每个十六进制位对应16的幂次,加权求和。 5. **浮点数的转换**: - 十进制的小数部分转换为二进制...