转换科学计数法的数值字符串为decimal类型
2017-03-03 11:36
253 查看
在操作数据库时,需要将字符串转换成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。
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。
相关文章推荐
- SQL Server 疑难杂症--转换科学计数法的数值字符串为decimal类型
- Java中数值较大的double类型转换为字符串时会用科学计数法显示的解决办法
- C# 十六进制字符串与数值类型之间转换(转)
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- 字符串转换成数值类型
- [Tip: _itow]数值和字符串相互转换(C++ 数据类型转换技巧)
- PHP - Manual手册 - 语言参考 - 类型 - 字符串 - 字符串转换为数值
- C# 十六进制字符串与数值类型之间转换
- C# 十六进制字符串与数值类型之间转换
- SQL Server 疑难杂症--转换科学计数法的数值字符串为decimal类型
- 关于SQL Server中将数值类型转换为字符串的问题
- C#数据类型转换-数值字符串和数值之间的转换
- 关于SQL Server中将数值类型转换为字符串的问题
- 如何:在十六进制字符串与数值类型之间转换(C# 编程指南)
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- 关于SQL Server中将数值类型转换为字符串的问题
- 在十六进制字符串与数值类型之间转换
- 关于SQL Server中将数值类型转换为字符串的问题[转]
- 1.2 boost库学习--类型转换(数值类型to字符串)