就Double、Decimal来说数据计算异常

场景:

客户提示发料时提示库存不足,可肉眼比对发料数量与库存数量没有一点问题。

但调度跟踪却发现出现“不可思议”的异常。

简单分析:

1.转Decimal再计算没问题。精度较高,存储方法也不一样,所以数据没有丢失。

2.Double时数据丢失。精度最高,转二进制后有数据溢出,导致数据丢失。

3.根据数值,C#默认为Double,数据丢失。

总结:

读了几个帖子,C#为了支持金融、货币计算引入Decimal类型。所以,在处理金融等数据时,以后还是直接用Decimal。

引用:

http://bbs.csdn.net/topics/70318335

http://www.cnblogs.com/jhxk/articles/1605755.html

http://www.cnblogs.com/haiyang1985/archive/2009/03/03/1402394.html

http://blog.csdn.net/lai123wei/article/details/7220276 读完这个帖子,才理解了我的问题出现的原因。

就Double、Decimal来说数据计算异常

时间: 2024-08-03 05:06:11

就Double、Decimal来说数据计算异常的相关文章

Mean and Standard Deviation-从文件中读取数据计算其平均数和标准差

Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 //Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 #include<iostream> #include<fstream> #include<cstdlib> #include<cmath>   int main() {     usingnamespace std;     ifstream fin;     ofstr

decimal类型数据如何保留两位小数

日常开发中,decimal作为货币类型,经常会处理保留两位小数的问题. 本站整理两种,decimal类型保留两位小数的方法. 第一种: decimal d = 46.28111m;string res=d.ToString(“#0.00”); //结果=46.28 第二种: double d=45.123456;string res=double.Parse(String.Format(“{0:N}”, d)).ToString(); //结果=45.12 转载请注明:三只源码 » decima

揭秘阿里云EB级大数据计算引擎MaxCompute

日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester Wave首次发布关于云数仓解决方案(Cloud Data Warehouse,简称CDW)的测评.报告对云数仓的当前产品功能.产品路线和发展策略.市场表现等几个方面进行全面的评估,在产品能力排行榜中,阿里云力压微软排行第7. Forrester测评报告对CDW核心功能的评估主要从解决方案的多样性.数据集成.性

上:Spark VS Flink – 下一代大数据计算引擎之争,谁主沉浮?

作者简介 王海涛,曾经在微软的 SQL Server和大数据平台组工作多年.带领团队建立了微软对内的 Spark 服务,主打 Spark Streaming.去年加入阿里实时计算部门,参与改进阿里基于 Apache Flink 的Blink 平台. 导读: 做大数据绝对躲不过的一个热门话题就是实时流计算,而提到实时流计算,就不得不提 Spark 和 Flink.Spark 从 2014 年左右开始迅速流行,刚推出时除了在某些场景比 Hadoop MapReduce 带来几十到上百倍的性能提升外,

2019年优选大数据计算平台搭建方案之BR-odp数据安全、管理模块,数道云大数据

[前言]大数据计算平台,使用了Hadoop.Spark.Storm.Flink等这些分布式的实时或者离线计算框架,建立计算集群,并在上面运行各种计算任务. 21世纪的现在,大数据这个名词对我们来说并不陌生,大数据受到了不同行业,不同领域的各界人士的关注,就在今年已经过去的两会中,大数据的发展及使用也成为两会的热门话题. 大数据行业火热的发展,大数据技术将海量数据的价值化来赋予传统行业不一样的发展前景,大数据不仅助力企业的发展,同时也在政府等关于民意收集等等多个领域得到广泛应用,因此,大数据技术在

如何解决大数据计算中常见的数据倾斜问题?

数据倾斜是在大数据计算中常见的问题,用最通俗易懂的话来说,数据倾斜无非就是大量的相同key被partition分配到一个分区里,造成了'一个人累死,其他人闲死'的情况,这种情况是我们不能接受的,这也违背了并行计算的初衷,首先一个节点要承受着巨大的压力,而其他节点计算完毕后要一直等待这个忙碌的节点,也拖累了整体的计算时间,可以说效率是十分低下的.以下针对spark具体计算场景,给出数据倾斜解决方案:场 景当RDD执行reduceByKey等聚合类shuffle算子或者在Spark SQL中使用gr

大数据计算引擎之Flink Flink状态管理和容错

原文地址:大数据计算引擎之Flink Flink状态管理和容错 有状态计算 在Flink架构体系中,有状态计算可以说是Flink非常重要的特征之一.有状态计算是指在程序计算过程中,在Flink程序内部,存储计算产生的中间结果,并提供给Functions 或 孙子计算结果使用.如图所示: 状态数据可以维系在本地存储中,这里的存储可以是 Flink 的堆内存或者堆外内存,也可以借助第三方的存储介质,例如:Flink中已经实现的RocksDB,当然用户也可以自己实现相应的缓存系统去存储状态信息,以完成

SPARK大数据计算BUG处理:

大数据计算BUG处理: 程序修改前资源情况: Driver : 1台 Worker : 2台 程序提交申请内存资源 : 1G内存 内存分配情况 : 1. 20%用于程序运行 2. 20%用于Shuffle 3. 60%用于RDD缓存 单条TweetBean大小 : 3k 1. 内存溢出 原因:因为程序会把所有的TweetBean查询出来并且合并(union),该操作在内存中进行.则某个campaign数据量较大时,如500W数据,则500W*10k=50G,超出内存限制. 解决方法: 先按数据量

Java中如何判断一个double类型的数据为0?

Java中如何判断一个double类型的数据为0 其实这个问题很简单,只是很多时候考虑复杂了,直接用==判断即可.下面给出测试例子: /**  * 如何判断一个double类型的数据为0  *  * @author leizhimin 2014/8/27 10:31  */ public class Test4 {     public static void main(String[] args) {         double x = 0.00000000000000000;