PHP的两个科学计数法转换为字符串的方法

不常用,所以整理在这里,分享给同行使用

方法一:取尾数法

public function NumToStr($num) {
        if (stripos($num, ‘e‘) === false)
            return $num;
        $num = trim(preg_replace(‘/[=\‘"]/‘, ‘‘, $num, 1), ‘"‘); //出现科学计数法,还原成字符串
        $result = "";
        while ($num > 0) {
            $v = $num - floor($num / 10) * 10;
            $num = floor($num / 10);
            $result = $v . $result;
        }
        return $result;
    }

方法二:数字规律法

function sctonum($num){
    if(false !== stripos($num, "e")){
        $a = explode("e",strtolower($num));
        return bcmul($a[0], bcpow(10, $a[1]));
    }
}
时间: 2024-10-11 23:05:04

PHP的两个科学计数法转换为字符串的方法的相关文章

Java把科学计数法转换为字符串

/**  * 把科学计数法转换为字符串  * 1.64607507E8(转化为164607507).1.6.0.0.0  * @param str  * @return  */ private static String number2PlainString(String str){ BigDecimal bd = new BigDecimal(str); return bd.toPlainString(); }

js 科学计数法 转换为 数字字符 突破幂数正数21位,负数7位的自动转换限制

前天工作中要转换后台返回的一个数据,返回是的科学计算的数字字符,用网上能搜索到的常用两种方法转换会有倍数的限制,然后又搜索了很久,还是没有找到好的方法,虽然也有一些自己写的方法,可还是不能像下面两种方法一样能正常转换各种正负科学计数,且突破幂数正数21位,负数7位的自动转换限制.所以对比了下,花一下午修改测试,基本通用了,只是传入的参数必须为字符串的科学计数. var num = new Number('3.54545E-3'); // 3.54545e-7var sBalance = pars

Excel科学计数法转换为文本(转载)

excel中的科学计数法有时候会带来意想不到的麻烦.特别是从网页上复制过来的数据粘贴到自己的表中时变成了科学计数法的形式,处理起来很麻烦.今天看到了一个简单的方法,将数据转换成文本,而且末位不会丢失. 方法一:选定数据区域,点击“数据→分列→下一步→下一步→文本→完成”.(简单好用) 方法二:1.先把excel表格设置为文本格式.         2.复制过来粘贴时,右键选项"选择性粘贴"-->文本:         3.如果是 Excel2003,粘贴过来时,单元格右下有个选项

PAT 1024 科学计数法 (字符串)

不用纠结怎么把输入串变成结果串,一部分一部分输出即可.(时间不够写一部分是一部分,+的情况10分-的情况6分,还漏了4分有空来讨论一下) 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=10010; 4 int main(){ 5 char a[maxn]; 6 scanf("%s",a); 7 if(a[0]=='-') printf("-"); 8 int len=s

科学计数法的值

科学计数法是一种数学专用术语.将一个数表示成 a×10的n次幂的形式,其中1≤|a|<10,n为整数,这种记数方法叫科学计数法.例如920000可以表示为9.2*10^5 现在需要对输入的字符串进行分离,自动识别该科学计数法中的a和幂次,计算其表征的具体数值并输出该值. 例如,对于输入的复数字符串"9.210^5",输出 The actual value for 9.210^5 is 920000 注意: 1.每组测试数据仅包括一个用于科学计数法的字符串. 2.输入字符串保证合法

BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

转自:https://blog.csdn.net/ochangwen/article/details/51531866 一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象,我们不

PAT乙级—1024. 科学计数法 (20)-native

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出. 现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留. 输入格式: 每个输入包含1个测试用例,即一个以科学计数法表示的实数A.该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999. 输出格式: 对每个测

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型. 而且无论数字是否小数,使用cell.getNumbericCellValue() 去获取值的时候,会得到一个double,而且当长度大一点的时候会变成科学计数法形式. 那么获取这个单元格的原始的数据,就其实是一个double怎么转换成整数的问题了. 使用DecimalFormat对这个double进行了格式话,随后使用format方法获得的String就

PHP 如何显示大数字,防止显示为 科学计数法 形式

PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16: 如何 避免转换,让它原样展示呢? 不过,可以用PHP函数 number_format() 来格式化数字,参考代码如下: $str = number_format(123456789123456789123456, 0, '', ''); print_r($str); 原样输出: 123456789123456789123456 延伸阅读: PHP保留2位小数 格式化小数.浮点数