|
|
|
แก้ code .ให้ด้วยค่ะ คือต้องการให้คำนวณค่าที่รับเป็น ตัวอย่าง 3,000.00 นะค่ะตอนนี้มันคิดไม่ได้นะค่ะ |
|
|
|
|
|
|
|
ต้องการผลลัพธ์ให้ออกมาแบบไหนครับ เพราะนำโค้ดไปทดสอบแล้วใช้ได้นี่ครับ
|
|
|
|
|
Date :
2009-10-21 15:37:04 |
By :
NanoThoro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ เมื่อ ใส่ค่า ไปแล้ว
อยากให้ผลที่ได้เป็น 9,000.00 คือมีจุดทศนิยม กัคอมม่า นะค่ะ
แล้วถ้าเราดึงข้อมูลจากฐานข้อมูลมาใส่ใน textbok ชื่อres ให้ข้อมูลมันแสดงออกมาเลยใน textbox ชื่อ total ได้ไหมค่ะ
|
|
|
|
|
Date :
2009-10-21 16:08:41 |
By :
aung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รีบตั้งกระทู้ใหม่จัง กำลังแก้ให้อยู่ แง่มๆ
เพิ่มเติม
- เมื่อรับค่า 1,000,000.00 สามารถคำนวณได้ ในฟังก์ชันเพิ่มตัวแปรลบ comma
- เมื่อแสดงค่าที่ totalเพิ่ม comma เป็น 3,000,000.00
Code (PHP)
<script>
function cal(res){
var resvalue =res.value.replace(/\,/,"");
if(resvalue==""){
alert("กรุณาใส่ค่าด้วยค่ะ");
document.getElementById('total').value="";
res.value="";
res.focus(); // not support firefox
return;
}
if(/^(\d+)?(\.\d+)?$/.test(resvalue) ){
var result= parseFloat(resvalue)*3;
/***************** add comma **********************/
var dot = (result.toString().indexOf('.') ==-1)?result.toString().length :result.toString().indexOf('.') ;
var i =1;
while(dot >=(3*i)){
if((dot-3*i)!=0)
result=result.toString().substring(0,dot-3*(i))+","+result.toString().substring(dot-3*(i-1),dot-3*i)+result.toString().substring(dot-3*(i-1),result.toString().length);
i++;
}
/*****************************************************/
document.getElementById('total').value=result;
}else{
alert("รูปแบบผิดค่ะ");
document.getElementById('total').value="";
res.value="";
res.focus(); // not support firefox
}
}
</script>
res:<input type="text" id="resvalue" onblur="cal(this)" /><br/>
total:<input type="text" id="total" />
ปล. มีบัคเปล่าไม่รู้น่ะ เขียนไปไม่ถึง 30นาที ยังไม่ตรวจสอบบัคแบบระเอียด
|
|
|
|
|
Date :
2009-10-21 16:09:16 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มี comma แล้ว แต่ไม่มี .00
|
|
|
|
|
Date :
2009-10-21 16:14:49 |
By :
aung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แปปครับ เพิ่งเห็นคำถามเหอะๆ
ถามเพิ่มครับ ต้องการให้เห็นทศนิยมกี่ตำแหน่ง
|
|
|
|
|
Date :
2009-10-21 16:29:19 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปวดหัวจังเขียนโปรแกรมอยากรู้อะไรมาทางนี้ add [email protected]
|
|
|
|
|
Date :
2009-10-21 16:37:25 |
By :
don |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<script>
function cal(res){
var resvalue =res.value.replace(/\,/,"");
if(resvalue==""){ //เมื่อค่าเท่ากับไม่มีค่า
alert("กรุณาใส่ค่าด้วยค่ะ");
document.getElementById('total').value="";
res.value="";
res.focus(); // not support firefox
return;
}
if(/^(\d+)?(\.\d+)?$/.test(resvalue) ){ // รูปแบบต้องเป็นจำนวนเต็มหรือ จำนวนทศนิยม
var result= parseFloat(resvalue)*3; // คำนวณ x*3
total =(Math.round(parseFloat(result)* 100) /100).toString(); //ปัดเศษเหลือทศนิยม 2 ตำแหน่ง
/*-----------------------เพิ่มทศนิยมให้ครบ 2 ตำแหน่ง -----------*/
if(total.indexOf('.')==-1){total+=".00";}
else if( total.length ==total.indexOf('.')+2){total+="0";}
/*---------------------------------------------------------------------------*/
/*----------------------------เพิ่ม comma ---------------------------*/
var dot = (total.indexOf('.') ==-1)?total.length :total.indexOf('.') ;
var i =1;
while(dot >=(3*i)){
if((dot-3*i)!=0)
total=total.substring(0,dot-3*(i))+","+total.substring(dot-3*(i-1),dot-3*i)+total.substring(dot-3*(i-1),total.length);
i++;
}
/*------------------------------------------------------------------------------*/
document.getElementById('total').value=total;
}else{
alert("รูปแบบผิดค่ะ");
document.getElementById('total').value="";
res.value="";
res.focus(); // not support firefox
}
}
</script>
res:<input type="text" id="resvalue" onblur="cal(this)" /><br/>
total:<input type="text" id="total" />
|
|
|
|
|
Date :
2009-10-21 17:00:55 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จุดทศนิยม 2 ตำแหน่ง ค่ะ
code ข้างบน ใส่ค่าแล้วไม่ขึ้นค่ะ
|
|
|
|
|
Date :
2009-10-21 17:19:53 |
By :
aung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var total =(Math.round(parseFloat(result)* 100) /100).toString();
เพิ่ม var ให้หน่อยครับ
|
|
|
|
|
Date :
2009-10-21 17:24:12 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้อีกจุดครับ
var resvalue =res.value.replace(/\,/g,"");
เพิ่มตัว g หน่อยครับ จะได้แทน , เป็น ค่าว่างทั้งหมด
หมดแล้วมั่งน่าจะใช้ได้สมบูรณ์แหล่ะ มีปัญหาก็โพสได้น่ะครับ
|
|
|
|
|
Date :
2009-10-21 17:31:00 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|