四舍五入的小数截断小值 - 向上舍入

Posted

技术标签:

【中文标题】四舍五入的小数截断小值 - 向上舍入【英文标题】:Rounded decimal truncating small values - rounding up 【发布时间】:2013-04-02 15:12:20 【问题描述】:

例如,我有 1000 个西红柿,总价值 4.00 美元。这将是 0.004 每个番茄。我的数据类型是decimal (9,2)

如果我想将该值四舍五入到 0.01,我将如何实现?

【问题讨论】:

四舍五入时0.004 = 0.01 怎么可能?不是0.00吗? 四舍五入的规则是什么? 我认为他们想要更多的 Math.Max() 函数,这两个值中的较高者。他们不想展示任何低于一分钱的东西。 @JW 一分钱是最小的货币价值。 @RobertHarvey 我的错。你是对的:) 【参考方案1】:
Select Round(CEILING(0.004 * 100)/100,2) 

【讨论】:

【参考方案2】:
select  case 
        when cast(4.00/1000 as decimal(9,2)) < 0.01 then 0.01
        else cast(4.00/1000 as decimal(9,2))
        end

【讨论】:

【参考方案3】:

应该这样做:

select ceiling(0.004*100)/100 

【讨论】:

以上是关于四舍五入的小数截断小值 - 向上舍入的主要内容,如果未能解决你的问题,请参考以下文章

c语言中有没有进行四舍五入的函数

Microsoft SQL 四舍五入为整数,需要保留 1 位小数 [重复]

如何舍入一个浮点数?

只保留小数点后的前两位数字,不四舍五入[重复]

php ceil()函数 语法

在字母数字 NSString 中将 FLOATS 向上/向下舍入为 INTS