转换科学计数法的数值字符串为decimal类型的方法

在操作数据库时,需要将字符串转换成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+006' as decimal(18,2));
select convert(decimal(18,2), '0.12e+006');

网上查了很多资料都没有找到答案。最后无意中发现float类型转换成字符串时就会产生科学计数法的数值字符串:

select cast(cast(1234400000 as float) as varchar)
1.2344e+009

反向思维,那科学计数法的数值字符串应该可以转换成float类型,再转换float到decimal。

以上这篇转换科学计数法的数值字符串为decimal类型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 不以科学计数法输出的方法

    其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定 以上这篇python 不以科学计数法输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 转换科学计数法的数值字符串为decimal类型的方法

    在操作数据库时,需要将字符串转换成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+

  • 将BigDecimal转成字符串为科学计数法的踩坑记录

    目录 BigDecimal转字符串为科学计数法踩坑 场景 解决 案例演示 BigDecimal变科学计数法 BigDecimal转字符串为科学计数法踩坑 场景 在开发工程中,在金额方面都会定义bigdecimal类型,当然有时候也需要将金额转成字符串.我们可能会很自然的写成 金额.toString()方法如: costBudgetEntity.getInitTotalAmount().toString()//获取初始预算金额的字符串 当然当金额过小时,转成字符串,是没有任何问题的,但当金额数值较

  • java中将科学计数法转换普通计数法的简单方法

    今天发现数据库里汇总的数据有点大,一输出就被自动转化成科学计数法了.后来发现是转换字符串的方法有问题.如下: String a = "11234567.89"; BigDecimal db = new BigDecimal(a); System.out.println("科学计数:" + db.toString()); System.out.println("普通计数:" + db.toPlainString()); 输出: 科学计数:1.123

  • php使用json_decode后数字对象转换成了科学计数法的解决方法

    本文实例讲述了php使用json_decode后数字对象转换成了科学计数法的解决方法.分享给大家供大家参考,具体如下: 问题: 今天在搞网页游戏在facebook积分上的对接,facebook传过来一个类json字符串,想在callball.php页面当中应用这些参数,于是进行了一次json_decode操作,发现长长的数字都变成了科学计数法,这不是我想要的结果. 解决方法: 做了各方面的转换处理都不好使: $obj='{"order_id":213477815351175,"

  • R语言数值取消科学计数法表示的操作

    我就废话不多说了,大家还是直接看代码吧~ >#取消科学计数法 >options(scipen = 200) >#scipen 表示在200个数字以内都不使用科学计数法 补充:R语言去除科学计数法 保留小数位 R语言 去除科学计数法 保留小数位 options("scipen"=100, "digits"=4) 补充:R语言科学计数法数据改变/丢失/失准,取消科学计数法的原因和解决方法 问题描述 如何在R中取消科学计数法 & 对R中使用科学技

  • PHP实现将科学计数法转换为原始数字字符串的方法

    本文实例讲述了PHP实现将科学计数法转换为原始数字字符串的方法,分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: function NumToStr($num){     if (stripos($num,'e')===false) return $num;     $num = trim(preg_replace('/[=\'"]/','',$num,1),'"');//出现科学计数法,还原成字符串     $result = "";     wh

  • 解决Java中由于数据太大自动转换成科学计数法的问题

    1.java后台 (1)使用BigDecimal类 方式一:String str=new BigDecimal(num+"").toString(); 方式二:String str=new BigDecimal(num.toString()).toString(); (2)使用DecimalFormat类 //注意,这种方式是保留几位小数 String str=new DecimalFormat("0.00").format(num); 2.JSP页面 (1)使用j

  • Golang科学计数法转换string数字输出的实现

    目录 1.问题 2.问题修复 3.总结 1.问题 最近接手一个商城运单号模块,接手后发现有部分运单号返回给前端是按照科学计数法的方式返回,如:8.0497183772403904E+17,后查库发现这些运单号在excel导入的时候就是按照科学计数法导入,没做任何处理. 按照科学计数法的形式返回给用户运单号,这样太不友好了,简直就是bug,所以需要进行转换处理后再返回给用户. 2.问题修复 面向谷歌编程,找到了以下方法进行转换: 第一种: oldNum := float64(8.049718377

  • R语言-如何将科学计数法表示的数字转化为文本

    统赛B组我们选择了图书馆课题,获得了数据,一时兴起尝试处理了一下门禁的数据,遇到了一些问题,特此记下,方便以后查阅. 门禁数据分为两个变量,第一列为学号,第二列为进门时间,原本是Excel文件,为了方便读入R我把它另存为了csv文件,但在读入R以后出现了一些问题 1.学号被存储为了科学计数法表示的数字 2.时间显示的也不全面,有些乱码 时间问题可以在Excel中把单元格格式设置一下就解决了,但是学号问题却遇到了一些小麻烦,我本来是想用 menjin$studentcode <- as.chara

  • Java将科学计数法数据转为字符串的实例

    有些项目可能会涉及到从Excel导入数据,但如果Excel里单元格类型为数值,但内容数据太长时(如银行账号),导入时,会默认读取为科学计数法,用以下代码便轻松解决. BigDecimal bd = new BigDecimal("3.40256010353E11");  System.out.println(bd.toPlainString()); 以上这篇Java将科学计数法数据转为字符串的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐