Дадено е число (или низ, представляващ число), защо просто не направите това:
var number;
var output = (Math.round(number * 100) / 100).toFixed(2);
Във вашия случай изглежда, че искате:
$('#a_is_valid').one('click', function(){
if ($('#code_promo').val() == 'promocode')
{$('#gtotal').val((Math.round($('#gtotal').val() * 75) / 100).toFixed(2));
Math.round (достатъчно подходящо) закръгля до най-близкото цяло число, така че ще трябва да направите малко магия. Умножете по 10^(брой десетични знаци, който искате) - във вашия случай 10^2 или 100, закръглете и след това разделете на същото число.
В примера, който направих специално за вас, ще забележите, че умножавам по 75: 0,75 * 100.
Може да е най-лесно да видите това с помощта на функция:
function roundToNPlaces(n, val) {
var multiplier = Math.pow(10, n);
return (Math.round(val * multiplier) / multiplier).toFixed(n);
}
Тогава можете просто да зададете gtotal както следва:
$('#gtotal').val(roundToNPlaces(2, $('gtotal').val() * 0.75));
Вижте този FIDDLE.
Вижте:
- Math.round ЗАБЕЛЕЖКА: Тази документация предоставя изпълнение, подобно на (но по-сложно от) кода, който дадох. Ако копирате целия им пример
Decimal rounding
във вашия код (преди първия път, когато трябва да го използвате), тогава можете просто да използвате Math.round10($('#gtotal').val() * .75, -2);
. Вижте http://jsfiddle.net/aW44n/1/
- toFixed
person
Scott Mermelstein
schedule
25.11.2013
.fixed()
и изглежда, че Google показва, че плъгините, които използват този метод, са за позициониране на неща на страница, а не за посочване на десетична точка (математика). - person Crayon Violent   schedule 25.11.2013