2014-02-06 2 views
0

Мой код:Десятичное число получает disapper

var $label = $(ev.currentTarget); 
var $price = $label.parent("form").find(".oe_price .oe_currency_value"); 

if (!$price.data("price")) { 
    $price.data("price", parseFloat($price.text()); //price is 10.30 but it returns 10.3 as number 
} 

$price.html($price.data("price")+parseFloat($label.find(".badge span").text() || 0)); 
/* The value coming in **badge** is **12.00** 
* but parseFloat converts that into **12** 
* thats why after the addition I got the output as **22.3** 
* but i want it as **22.30** 
*/ 

У меня есть строка

'10 .30'

Теперь, если преобразовать строку в число с помощью parsefloat

parseFloat ('10 .30 ')

Я получил выход как 10,3

И если я делаю это с помощью .tofixed (2)

parseFloat ('10 .30'). ToFixed (2)

Я получил выход 10.30, но он находится в STRING, что является большой проблемой для меня, потому что Я хочу, чтобы результат был номер.

И если я делаю как этот

номер (parseFloat ('10 .30'). ToFixed (2))

Я получил выход 10,3

Но я хочу выход в числе и с десятичной точкой как это 10.30

Plz help ... !!!

+1

Число '10.3' точно такое же, как' 10.30', так почему это имеет значение, численно? Если он предназначен для представления на веб-странице, строка будет прекрасной. –

+0

Последняя цифра равна 0, ее не имеет значения для вычислений с плавающей запятой, чтобы включить ее. Когда вы выходите что-то, оно все равно становится строкой, так что в чем проблема? – gpgekko

+0

Пожалуйста, ознакомьтесь с http://stackoverflow.com/questions/2221167/javascript-formatting-a-rounded-number-to-n-decimals/2909252#2909252 –

ответ

0

thankz Passerby за помощь.

Наконец я получил результат от этого:.

$ price.html (($ price.data ("цена") + parseFloat ($ label.find ("поверочного знак") текст () || 0,10)). ToFixed (2));

0

Попробуйте это:

parseFloat(Math.round(num3 * 100)/100).toFixed(2); 

See Live Demo

+0

Спасибо за помощь. Но я проверил эту демонстрационную версию и код но выход идет в строку. :( Но я хотел в номере. Ситуация такова, когда мы используем .tofixed(), она преобразует число в строку. :( – ParaMeterz

+0

Решает вашу проблему? EDIT: okay! – Jzf

+0

Нет человека, которого он не исправил. Я хочу, чтобы конечный результат был номером не строки. Если бы использовать .toFixed(), он преобразует вывод в строку. – ParaMeterz

0

Я не знаю, что вы делаете, но я сделал то же самое и получили желаемый результат.

Мой код:

var str = '10.30'; 
var flo = parseFloat(str); 
alert(flo); 
flo = flo.toFixed(2) 
alert(flo); 

Смотрите здесь: Fiddle

+0

Checkout the last alert man typeof (flo) - строка, но мне нужен номер. alert (typeof (flo)); – ParaMeterz

+0

Да, я видел это ... Собственно 'toFixed()' всегда преобразует float в строку ... здесь: http://stackoverflow.com/q/2283566/2764279 –

+0

Если вы хотите 'number' как' 10.30', то это не имеет значения, если оно '10.30' или' 10.3', и если вы хотите чтобы отобразить его где-нибудь, тогда 'String' подходит для этого. Где вы на самом деле используете это? –

Смежные вопросы