PDA

بازدید نسخه کامل شده : مشکل با یه اسکریپت جاوا


FireFly
01-20-2006, 03:58 PM
سلام

خوب من از جاوا اصلا چیزی سر در نمیارم .. بصورت کلی بخوام بگم از هیچی چیزی سر در نمیارم ...
فعلا دارم روی یه فروشگاه آنلاین کار می کنم به یه مشکل کوچیک ولی مسخره بر خوردم .... همینطوری که می دونید تو واحد های دلاری نمیدونم چه مرضی دارن قیمت رو .00 براش میزارن .. که خوب همون سنت است دیگه ! ... حالا برای ما که دیگه قرون و این حرفها نیست دردسر درست می کنن ... خوب تا اینجای کار همه اون اعشار ها رو از تو فانکشن ها و ... حذف کردم فقط یه جایی داره که هزینه ارسال رو با هزینه کل جمع می کنه و تا جایی که من متوجه شدم این عملیات اضافه کردن از طریق یه اسکریپت جاوا انجام میشه ... از دوستانی که در این زمینه تخصص دارن خواهش می کنم در صورت امکان بنده را برای حذف این 00. یاری بدن ... این هم سورسش که فکر می کنم این عمل جمع رو انجام میده :

function fix( f ){
f = f.toString( );
var re = /\,/gi;
f = f.replace( re, "\." );

f = Math.round( f * 100 );
f = f.toString( );
var sMinus = f.slice( 0, 1 );
if( sMinus == '-' ){
f = f.slice( 1, f.length )
}
else
sMinus = '';
if( f.length < 3 ) {
while( f.length < 3 )
f = '0' + f;
}

var w = sMinus + f.slice( 0, f.length-2 ) + "." + f.slice( f.length-2, f.length );

var poprawnyFloat = /^-?[0-9]{1,}[.]{1}[0-9]{1,}$/i;
if( w.search( poprawnyFloat ) == -1 )
w = '0.00';
return w;

}

البته به این یکی هم شک دارم که ممکنه تو این عملیات صورت می گیره :

function ordersCouriers( obj ){

if( obj.value != '' )
aCourier = obj.value.split( "|" );
else
aCourier = Array( '0', '0' );

fDeliveryCost = Math.abs( aCourier[1] );

gEBI( "deliveryCost" ).innerHTML = fix( fDeliveryCost );
gEBI( "summaryCost" ).innerHTML = fix( +gEBI( "orderCost" ).innerHTML + fDeliveryCost );
document.form['fSummary'].value = gEBI( "summaryCost" ).innerHTML;

پیشاپیش از راهنمایی هاتون سپاسگزارم :goatee:

FireFly
01-20-2006, 04:10 PM
خوب مشکل حل شد ... شرمنده .. اگه تاپیک اضافی است حذفش کنید... محض اطلاع با افزودن :

return (""+Math.round(f));

به تابع fix مشکل حل شد .. در نتیجه به شکل زیر در میاد :

function fix( f ){
return (""+Math.round(f));
f = f.toString( );
var re = /\,/gi;
f = f.replace( re, "\." );

f = Math.round( f * 100 );
f = f.toString( );
var sMinus = f.slice( 0, 1 );
if( sMinus == '-' ){
f = f.slice( 1, f.length )
}
else
sMinus = '';
if( f.length < 3 ) {
while( f.length < 3 )
f = '0' + f;
}

var w = sMinus + f.slice( 0, f.length-2 ) + "." + f.slice( f.length-2, f.length );

var poprawnyFloat = /^-?[0-9]{1,}[.]{1}[0-9]{1,}$/i;
if( w.search( poprawnyFloat ) == -1 )
w = '0.00';
return w;

}