当前位置:首页 > 编程教程 > Python技术文章 > 转换科学计数法的数值字符串为decimal类型的方法

转换科学计数法的数值字符串为decimal类型的实例讲解

  • 发布时间:
  • 作者:码农之家
  • 点击:165

这篇文章主要知识点是关于科学计数法、字符串、decimal、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python数据科学手册
  • 类型:Python大小:12.4 MB格式:PDF作者:杰克·万托布拉斯
立即下载

转换科学计数法的数值字符串为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类型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

相关电子书
学习笔记
网友NO.262387

因BigDecimal类型数据引出的问题详析

前言 我们都知道,java中对大小数,高精度的计算都会用到BigDecimal.但是在实际应用中,运用BigDecimal还是会遇到一些问题,下面话不多说了,来一起看看详细的介绍吧 问题描述: 程序中需要判断一个字段是否为0(字段类型为BigDecimal),想都没想,对象的判断用equals?结果却与预期有一定的差距,看下面代码及运行结果。 public static void main(String[] args) { BigDecimal decimal1 = BigDecimal.valueOf(0); BigDecimal decimal2 = new BigDecimal("0.00"); System.out.println("the result is " +decimal1.equals(decimal2)); } 运行结果: the result is false 结论: BigDecimal类型比较相等不能简单的通过equals方法实现。 BigDecimal类的equals方法源码如下: public boolean equals(Object x) { if (!(x instanceof BigDecimal)) return false; BigDecimal xDec = (BigDecimal) x; if (x == this) return true; if (scale != xDec.scale)//这里会比较数字的精度 return false; long s……

网友NO.114071

Java中DecimalFormat用法详解

我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子。下面是一个例子: importjava.text.DecimalFormat; public class TestNumberFormat{ public static void main(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat("0").format(pi)); //3 //取一位整数和两位小数 System.out.println(newDecimalFormat("0.00").format(pi)); //3.14 //取两位整数和三位小数,整数不足部分以0填补。 System.out.println(new DecimalFormat("00.000").format(pi));// 03.142 //取所有整数部分 System.out.println(newDecimalFormat("#").format(pi)); //3 //以百分比方式计数,并取两位小数 System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16% longc=299792458; //光速 //显示为科学计数法,并取五位小数 System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8 //显示……

网友NO.713489

MySQL数据类型中DECIMAL的用法实例详解

MySQL数据类型中DECIMAL的用法实例详解 在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法。 一般赋予浮点列的值被四舍五入到这个列所指定的十进制数。如果在一个FLOAT(8, 1)的列中存储1. 2 3 4 5 6,则结果为1. 2。如果将相同的值存入FLOAT(8, 4) 的列中,则结果为1. 2 3 4 6。 这表示应该定义具有足够位数的浮点列以便得到尽可能精确的值。如果想精确到千分之一,那就不要定义使该类型仅有两位小数。 浮点值的这种处理在MySQL3.23 中有例外,FLOAT(4) 和FLOAT(8) 的性能有所变化。这两种类型现在为单精度( 4 字节)和双精度( 8 字节)的类型,在其值按给出的形式存放(只受硬件的限制)这一点上说,这两种类型是真浮点类型。 DECIMAL 类型不同于FLOAT和DECIMAL,其中DECIMAL 实……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com