需要注意的是一般的科学表达式是1.8E12 1.8E-12 而在Excel中的科学表达式是1.8E+12 1.8E-12 我写的科学计数法的正则表达式是(-?\d+\.?\d*)[Ee]{1}[\+-]?[0-9]* 导入EXCEL数据时将科学计数法解析成数字,Java代码: import java.text.DecimalFormat; import java.util.regex.Pattern; public class Test { static Pattern pattern = Pa
在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:DecimalFormat a = new DecimalFormat("#,##0.00000000"); System.out.println(a.format(11111111.0000001000000001));的方式来格式化输出字符串. 对于BigDecimal的小数,如果制定精度<=6, 则可以放心的使用其toS
前天工作中要转换后台返回的一个数据,返回是的科学计算的数字字符,用网上能搜索到的常用两种方法转换会有倍数的限制,然后又搜索了很久,还是没有找到好的方法,虽然也有一些自己写的方法,可还是不能像下面两种方法一样能正常转换各种正负科学计数,且突破幂数正数21位,负数7位的自动转换限制.所以对比了下,花一下午修改测试,基本通用了,只是传入的参数必须为字符串的科学计数. var num = new Number('3.54545E-3'); // 3.54545e-7var sBalance = pars
今天在操作数据库时,需要将字符串转换成Decimal类型.代码如下: select cast('0.12' as decimal(18,2)); select convert(decimal(18,2), '0.12'); 当需要将科学计数法的数字字符串转换成Decimal时,这2种写法都报错: Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric. select cast('0.12e