decimal类型运算注意点

代码如下:

 1             //货币类型的两个数基本运算
 2             Console.WriteLine("错误的写法");
 3             decimal errorNumA = (10 - 6);
 4             decimal errorNumb = errorNumA / 10;
 5             decimal errorNumC = (10 - 6) / 10;
 6
 7             Console.WriteLine(errorNumb);
 8             Console.WriteLine(errorNumC);
 9
10
11             Console.WriteLine();
12             Console.WriteLine("正确的写法");
13             decimal numa = (10 - 6);
14             decimal numb = numa / 10m;
15
16             decimal numc = (10 - 6) / 10m;
17
18             Console.WriteLine(numb);
19             Console.WriteLine(numc);

运行结果:

运算的时候带m单位和不带结果大相径庭。切记、切记

时间: 2024-10-12 22:50:25

decimal类型运算注意点的相关文章

使Decimal类型数据保留N位小数且不进行四舍五入操作(C#)

一 问题描述 开发中,需要使Decimal类型数据保留小数点后的两位小数且不需要进行四舍五入操作,即直接截取小数点后面的两位小数即可.例如:1.245M --> 1.24,而不是1.25 使用Decimal.Round()方法可以实现保留Decimal类型数据小数点后的若干位小数,但是该方法会进行四舍五入操作,而不是直接截取.所以,该方法不可取,在网上搜寻一番也没有找到合适的方法,便自己实现了一个截取Decimal类型数据小数点后若干位的方法. 二 详细的实现代码 using System; n

设置EntityFramework中decimal类型数据精度

EF中默认的decimal数据精度为两位数,当我们数据库设置的精度大于2时,EF将只会保留到2为精度. e.g. 2.1999将会被保存为2.20 网上找到常见的方法为重写DbContext的OnModelCreating方法: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Product>().Property(x => x.Price).HasPre

float,double和decimal类型

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位) decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算.(28个有效位) float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入. double d=345.975423578631442d;//结果显示为345.9

关于.net 保存 decimal类型数据到SQLServer2012数据库时自动取整的问题

公司同事问我有没有遇到过decimal类型数据入库时,会自动取整的问题(比如12.3入库后值是12,12.8入库后值是13,入库后自动四舍五入自动取整): 之前就遇到过从数据去decimal类型数据时,会自动取整的问题:我想应该是同样的问题吧,叫同事设置SQLParameter参数时,设置Scale=2,Precision=18:类似代码如下: var param1 = new SqlParameter("@Money",System.Data.SqlDbType.Decimal);

Double 类型运算时的精度问题

double 类型运算时的 计算的精度不高,经常会出现0.999999999999999这样的情况,那么就需要用BigDecimal   它是java提供的用来高精度计算的工具类 下面是对这个类的一个包装,方便使用: package cn.soft.util; import java.io.Serializable; import java.math.BigDecimal; import org.springframework.stereotype.Component; /** *类描述: do

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

float double decimal 类型

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位) decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算.(28个有效位) float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入. double d=345.975423578631442d;//结果显示为345.9

解决 Entity Framework 6.0 decimal 类型精度问题

?  前言 本文主要解决 EF 中对于 MSSQL 数据库的 decimal 类型经度问题,经实验该问题仅在 CodeFirst 模式的情况下发生,话不多说直接看代码. 1.   假设我们有一张 Customer 数据表,主要探究:Longitude.Latitude.LonLatSum 这三个字段. 1)   结构如下: CREATE TABLE dbo.Customer ( Id int NOT NULL,                            --客户Id Name nva

设置EntityFramework中decimal类型数据精度问题(EF默认将只会保留到2为精度)

原文:设置EntityFramework中decimal类型数据精度 EF中默认的decimal数据精度为两位数,当我们数据库设置的精度大于2时,EF将只会保留到2为精度. e.g. 2.19990将会被保存为2.20 1.解决方案一是网上找到常见的方法为重写DbContext的OnModelCreating方法: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<