金额按3/7分后,再合计相加,不等于原总金额怎么处理?

zjl8008 2017-09-21 11:33:40
select 263.65,cast(1.0000*263.65*0.70000 as decimal(18,2)),cast(1.0000*263.65*0.30000 as decimal(18,2))


结果是:263.65 184.56 79.10 多了1分,金额必须保留2位小数
...全文
435 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
顺势而为1 2017-09-21
  • 打赏
  • 举报
回复
总数精确到2位小数, 那用于加总的数最少是需精确到 3位小数才行. select 263.65,cast(1.0000*263.65*0.70000 as decimal(18,3)),cast(1.0000*263.65*0.30000 as decimal(18,3))
繁花尽流年 2017-09-21
  • 打赏
  • 举报
回复
提供你一个思路,一般计算金额时会用到。 当你10000要分摊到3比款项时,1、2两笔可以直接用公式直接除,第三笔用反减的方式来抵消余数即可。 你这个例子就应该是改成这样 select 263.65,cast(1.0000*263.65*0.70000 as decimal(18,2)),263.65-cast(1.0000*263.65*0.70000 as decimal(18,2))
二月十六 版主 2017-09-21
  • 打赏
  • 举报
回复
小数点位数问题,自己进位了,楼主可以试试这样就明白了:
SELECT  263.65 ,
CAST(1.0000 * 263.65 * 0.70000 AS DECIMAL(18, 4)) ,
CAST(1.0000 * 263.65 * 0.30000 AS DECIMAL(18, 4))

acen_chen 2017-09-21
  • 打赏
  • 举报
回复
确定一个,另一个通过总额-确定的那个得出

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧