以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表达式只要小数点前两位不要四舍五入怎么设置呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34367)

--  作者:feikaba
--  发布时间:2013/6/6 13:36:00
--  [求助]表达式只要小数点前两位不要四舍五入怎么设置呢?
只要小数点前两位不要四舍五入怎么设置呢?看下图,只要小数点0.34    0.29   0.24  .....  折扣后金额是用表达式自动计算的!如果显示小数点位数系统自动四舍五入变成0.35 0.3 ....表达式里我已经用了       [原价] * [折扣]      不知道咋改!请高手告诉下!谢谢
[求助]
图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/6/6 14:03:00
--  
列属性设置只显示2位小数即可.
--  作者:feikaba
--  发布时间:2013/6/6 14:07:00
--  
设置显示2位小数  他会四舍五入变成0.35
--  作者:Bin
--  发布时间:2013/6/6 14:33:00
--  
使用代码完成吧.   

Dim str As String = "0.235"
messagebox.show(str.SubString(0,str.LastIndexOf(".")+3))

--  作者:狐狸爸爸
--  发布时间:2013/6/6 14:52:00
--  

1、表达式不变。

2、在DrawCell事件如下设置代码:

 

If e.Col.Name = "折扣后金额" AndAlso e.Text > "" Then
    Dim v As Double  = e.text
    v = Math.Floor(v * 100) / 100
End If  

[此贴子已经被作者于2013-6-6 14:54:03编辑过]

--  作者:lsy
--  发布时间:2013/6/6 20:09:00
--  

打折后金额列不用表达式

DataColChanged

 

If e.DataCol.Name = "原价" OrElse e.DataCol.Name = "折扣" Then
    If e.DataRow.IsNull("原价") = False AndAlso e.DataRow.IsNull("折扣") = False Then
        Dim s As String = CStr(e.DataRow("原价")*e.DataRow("折扣"))
        Dim s1 As String
        Dim i As Integer = Instr(s,".")
        s1 = s.SubString(0,i)
        s = s1 & Left(s.SubString(i),2)
        e.DataRow("打折后金额") = CDbl(s)
    End If
End If