Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > สอบถามเรื่องทำทศนิยม 2 ตำแหน่งหน่อยครับ Winfrom Vb.net



 

สอบถามเรื่องทำทศนิยม 2 ตำแหน่งหน่อยครับ Winfrom Vb.net

 



Topic : 125988



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์




vat

ต้องทำให้ใน textbox ที่เป็นทศนิยม 2 ตำแหน่ง และต้องการให้ตำแหน่งที่3ตั้งแต่ 5 ขึั้นไป ให้ปัดตำแหน่งที่สองขึ้นอีก 1

รบกวนหน่อยครับ ขอบคุณครับ



Tag : .NET, Web (ASP.NET), Win (Windows App), VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-01-10 22:39:00 By : adminliver View : 7379 Reply : 12
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

textbox.text = textboxt.text.tostring("0.00")

ประมาณนี้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-10 22:55:40 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (VB.NET)
Convert.ToDouble(sAmount).ToString("N", CultureInfo.InvariantCulture)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 09:42:29 By : mr.win
 

 

No. 3



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-01-10 22:55:40
รายละเอียดของการตอบ ::
For Each row As DataGridViewRow In Me.DataGridView1.Rows
iTotal = iTotal + row.Cells("Total").Value
Next

txtVat.Text = txtVat.Text.ToString.Trim("00.00")
txtAfterVat.Text = txtAfterVat.Text.ToString.Trim("0.00")
txtVat.Text = iTotal * (7) / (107)
txtAfterVat.Text = iTotal - txtVat.Text
txtTotal.Text = CInt(txtAfterVat.Text) + CInt(txtVat.Text)

ลองวิธีนี้ดูแล้วก็ยังเป็นเหมือนเดิมอ่ะครับ รบกวนชี้แนะหน่อยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 11:16:54 By : adminliver
 


 

No. 4



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2017-01-11 09:42:29
รายละเอียดของการตอบ ::
ต้องเอา Code นี้ไปวางตรงไหนอะครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 11:17:38 By : adminliver
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 3 เขียนโดย : adminliver เมื่อวันที่ 2017-01-11 11:16:54
รายละเอียดของการตอบ ::
ขอโทษด้วยครับพอดีเขียนสด เลยพลาดไปหน่อย

Code (VB.NET)
txtVat.Text =Convert.ToDouble(txtVat.Text).ToString("N2")



หรืออาจจะเขียนเป็น Extension Methods ไว้ซักที่ครับ

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



เวลาเรียกใช้ก็

Code (VB.NET)
        Text = "0.1264".ToDouble(3)
        Text = (22 / 7).ToDouble(5)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 11:46:14 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 12:54:49 By : mr.win
 


 

No. 7



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-01-11 11:46:14
รายละเอียดของการตอบ ::
ผมรบกวนอีกนิดได้ไหมครับ ช่วยอธิบาย Code ให้หน่อยได้ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 15:15:32 By : adminliver
 


 

No. 8



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

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
 


 

No. 9



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

รึจะแบบนี้

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
 


 

No. 10



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-01-11 15:45:53
รายละเอียดของการตอบ ::
ถึงบางอ้อเลยครับ ฮาๆ อธิบายเข้าใจดีครับ ผมใช้ Extension ตัวนี้เลยครับตอบโจทย์ สุดๆครับ
Imports System.Runtime.CompilerServices

Code (VB.NET)
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


ขอบคุณมากๆครับผม


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 16:14:26 By : adminliver
 


 

No. 11



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


แนบรูปไว้เพื่อท่านอื่นที่มีปัญแบบผมแฮร่ๆๆ
tt
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-11 16:19:38 By : adminliver
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-12 09:19:04 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องทำทศนิยม 2 ตำแหน่งหน่อยครับ Winfrom Vb.net
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่