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,027

HOME > Java Programming > Java Forum > Java : อยากรู้วิธีล็อคจำนวนเลขทศนิยมเวลาคำนวณ หรือหาคำตอบออกมา



 

Java : อยากรู้วิธีล็อคจำนวนเลขทศนิยมเวลาคำนวณ หรือหาคำตอบออกมา

 



Topic : 124237



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



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




อยากรู้ว่าเรามีวิธีล็อคจำนวนทศนิยมเวลาคำนวณได้ไหมครับ อย่างตัวแปร double x จะให้มีค่าแค่ทศนิยม 5 ตำแหน่ง เวลาคำนวณก็ 5 ตำแหน่ง คำตอบออกมาก็ 5 ตำแหน่ง ไม่ใช่ printformat นะครับ แต่อยากล็อคค่าที่ได้ออกมา

Code (Java)
import java.util.*;
public class JavaApplication1 {
    public static double a;
    public static double b;
    public static double x;
    public static double news = 0;
    public static double old = 0;
    public static double error;
    public static void main(String[] args) {
        Scanner data = new Scanner(System.in);
        System.out.print("Input a : ");
        a = data.nextDouble();
        System.out.print("Input b : ");
        b = data.nextDouble();
        double temp;
        double fa = Math.acos(a)-0.75;
        double fb = Math.acos(b)-0.75;
        if (fa*fb>0)
            System.out.println("Wrong value of a,b");
        if (fa<fb)
                    {temp = b;
                     b = a;
                     a = temp;}
        double answer = cal();
        //System.out.println("Answer of y=cosX-0.75 is "+answer);
        System.out.printf("Answer = %.4f\n", answer);
    }//main
    public static double cal() {
        for (int i=1;i>0;i++)
        {x = (a+b)/2;
         old = news;
         news = x;
         error = news - old;
         double y = Math.acos(x)-0.75;
         if (y>0)
             a=x;
         else 
             b=x;
         if (Math.abs(error)<0.0001)
             break;
        }//for
        double ans = news;
        return ans;
    }//cal
    
}


จะเอามาใช้คำนวณ bisection method ครับ



Tag : Java, JAVA, Windows









ประวัติการแก้ไข
2016-08-12 20:30:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-08-12 19:51:00 By : vaerit094 View : 16995 Reply : 7
 

 

No. 1



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

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

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

Code (Java)
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-17 12:05:29 By : mr.win
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2016-08-17 12:05:29
รายละเอียดของการตอบ ::
ขอบคุณนะครับ จะลองนำไปใช้ดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-17 17:50:58 By : vaerit094
 

 

No. 3



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-19 09:18:56 By : mr.win
 


 

No. 4



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



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


ใช้ BigDecimal ในการล็อคทศนิยมได้ครับ

Code
function Double round2(Double val) { return new BigDecimal(val.toString()).setScale(2,RoundingMode.HALF_UP).doubleValue(); }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-22 21:10:34 By : taturk
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : taturk เมื่อวันที่ 2016-08-22 21:10:34
รายละเอียดของการตอบ ::
ไม่ทราบว่าใช้ยังไงครับ Funtion นี้ ช่วยอธิบายผมที มือใหม่ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-23 16:55:08 By : vaerit094
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : mr.win เมื่อวันที่ 2016-08-19 09:18:56
รายละเอียดของการตอบ ::
ของแอดมินมันออกมาเป็น String อะครับ ผมอยากให้ได้ออกมาเป็น Double เพื่อเอาไปใช้คำนวณต่ออะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-23 16:55:48 By : vaerit094
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : vaerit094 เมื่อวันที่ 2016-08-23 16:55:08
รายละเอียดของการตอบ ::

return new BigDecimal(val.toString()).setScale(2,RoundingMode.HALF_UP).doubleValue();

BigDecimal(val.toString()) <- สร้าง instance ของ object BigDecimal constructor นี้จะ return instance BigDecimal ที่เก็บค่าที่ส่งเข้าไป

จากนั้น instance ที่ได้จะสามารถเรียก method ต่าง ๆ ใน object ได้
เราก็ทำการกำหนดจุดทศนิยมได้เลย

.setScale(2,RoundingMode.HALF_UP) <--- กำหนดทศนิยม 2 ตำแหน่ง และบังคับ rounding mode แบบเกินครึ่งปัดขึ้น
(Method นี้ก็จะ return instance BigDecimal ที่มีค่าที่ส่งให้ครั้งแรกและกำหนดตำแหน่งทศนิยมเรียบร้อย)

.doubleValue() <--- return เป็น instance ของ Object Double ครับ (ปกติผมจะใช้แต่ BigDecimal ครับ ไม่เคยใช้ .doubleValue เหมือนกัน)

**ระวังเรื่อง pass by ref. กับ by val. นะครับ ส่วนนี้ไปหาอ่านและทดสอบเองนะครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-24 00:27:50 By : taturk
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Java : อยากรู้วิธีล็อคจำนวนเลขทศนิยมเวลาคำนวณ หรือหาคำตอบออกมา
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่