 |
|
สอบถามเรื่องทำทศนิยม 2 ตำแหน่งหน่อยครับ Winfrom Vb.net |
|
 |
|
|
 |
 |
|
textbox.text = textboxt.text.tostring("0.00")
ประมาณนี้ครับ
|
 |
 |
 |
 |
Date :
2017-01-10 22:55:40 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Convert.ToDouble(sAmount).ToString("N", CultureInfo.InvariantCulture)
|
 |
 |
 |
 |
Date :
2017-01-11 09:42:29 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2017-01-11 12:54:49 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
txtVat.Text =Convert.ToDouble(txtVat.Text).ToString("N2")
สามารถค้นได้โดยใช้ string number format vb.net
ส่วน Extension Methods ก็สามารถค้นหาได้ครับ
ฝึกทำบ่อยๆจะสะดวกสำหรับคนขี้เกียจอย่างผม 5555
Code (VB.NET)
Imports System.Runtime.CompilerServices
Module _Extensions
<Extension()>
Public Function ToDouble(ByVal input As String, ByVal d As Integer)
ToDouble = Convert.ToDouble(input).ToDouble(d)
End Function
<Extension()>
Public Function ToDouble(ByVal input As Double, ByVal d As Integer)
ToDouble = input.ToString("N" & d)
End Function
End Module
คือว่าผมอยากจะเปลี่ยน string หรือ Double ใดๆก็ตามให้มีจุดทศนิยมตามที่เราต้องการ
โดยผมสร้าง Extension Methods ขึ้นมาชื่อ ToDouble
จะเห็นว่ามันมีทั้ง
Public Function ToDouble(ByVal input As String, ByVal d As Integer)
และ
Public Function ToDouble(ByVal input As Double, ByVal d As Integer)
หมายความว่ามันใช้ได้ทั้งกับ String และ Double
เมื่อมันเป็น Extension Methods เราก็ไม่จำเป็นต้องประกาศอะไร(ตามความขี้เกียจ)
ขอแค่ type เป็น String หรือ Double ดังนั้น
จึ้งใช้ได้ทั้งกับ
Text = "0.1264".ToDouble(3) //String
Text = (22 / 7).ToDouble(5) //Double
ปล.ความจริง Extension Methods นี้ยังผิดหลายจุดครับแต่ขี้เกียจแก้ 5555(โค้ดที่เขียนก็ไม่รู้ทั้งไว้ไหนอีก 55+)
แต่ถ้าฝึก Extension Methods การใช้งานต่างๆก็จะง่ายขึ้นครับ
|
ประวัติการแก้ไข 2017-01-11 15:49:27
 |
 |
 |
 |
Date :
2017-01-11 15:45:53 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รึจะแบบนี้
Code (VB.NET)
Imports System.Runtime.CompilerServices
Module _Extensions
<Extension()>
Public Function ToDouble(ByVal input As String, Optional d As Integer = 2) As Double
ToDouble = Convert.ToDouble(input).ToDouble(d)
End Function
<Extension()>
Public Function ToDouble(ByVal input As Double, Optional d As Integer = 2) As Double
ToDouble = Convert.ToDouble(input.ToString("N" & d))
End Function
<Extension()>
Public Function ToDouble(ByVal input As Double, Optional format As String = "N2") As Double
ToDouble = Convert.ToDouble(input.ToString(format))
End Function
<Extension()>
Public Function ToDouble(ByVal input As Object, Optional format As String = "N2") As Double
ToDouble = Convert.ToDouble(input).ToDouble(format)
End Function
<Extension()>
Public Function ToDouble(ByVal input As Object, Optional d As Integer = 2) As Double
ToDouble = Convert.ToDouble(input).ToDouble(d)
End Function
End Module
ใช้ได้ทั้งกับ String Double Object แต่ตัวนี้จะออกมาเป็น Double นะครับ
Code (VB.NET)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Text = (22 / 7).ToDouble(1).ToString()
End Sub
End Class
|
 |
 |
 |
 |
Date :
2017-01-11 16:03:26 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แนบรูปไว้เพื่อท่านอื่นที่มีปัญแบบผมแฮร่ๆๆ

|
 |
 |
 |
 |
Date :
2017-01-11 16:19:38 |
By :
adminliver |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2017-01-12 09:19:04 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|